Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】String::each_grapheme_cluster()メソッドの使い方

each_grapheme_clusterメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

each_grapheme_clusterメソッドは、レシーバーであるStringオブジェクトを、グラフェムクラスター単位で繰り返し処理を実行するメソッドです。グラフェムクラスターとは、見た目上1つの文字として認識される単位のことで、例えば「が」のように濁点が付いた文字や、複数のUnicodeコードポイントで構成される絵文字などがこれに該当します。通常のeach_charメソッドがUnicodeのコードポイント単位で文字を分割するのに対し、このメソッドはユーザーが目で見て自然に感じる「1文字」の単位で分割するため、より直感的な文字処理が可能です。

このメソッドは、ブロックを受け取ることができます。ブロックが与えられた場合、文字列内の各グラフェムクラスターを順にブロックに渡して実行します。ブロックが与えられなかった場合は、Enumeratorオブジェクトを返します。これにより、後からmapselectなどのメソッドをチェーンして利用することもできます。

このメソッドは、特に日本語のような結合文字を持つ言語や、絵文字を正しく扱う必要がある場面で非常に有用です。例えば、ユーザーに見える形での正確な文字数カウントや、見た目を考慮した文字列の表示処理において、見た目と実際の文字単位を一致させたい場合に活用できます。国際化対応が求められるシステム開発において重要な役割を果たすメソッドです。

構文(syntax)

1"こんにちは世界👨‍👩‍👧‍👦".each_grapheme_cluster { |grapheme| puts grapheme }

引数(parameters)

引数なし

引数はありません

戻り値(return)

String または Enumerator

各グラフエムクラスター(文字のまとまり)を要素とする Enumerator または、それを列挙した String を返します。

関連コンテンツ

関連プログラミング言語