【Ruby3.x】String::tr_s!()メソッドの使い方
tr_s!メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
tr_s!メソッドは、Stringクラスに属し、文字列内の特定の文字を別の文字に置換し、さらに連続する同じ文字を一つにまとめる(スクイーズする)機能を実行します。
このメソッドは、メソッド名の末尾にある「!」(バン)が示す通り、呼び出し元の文字列オブジェクト自身の内容を直接変更する、破壊的な操作を行います。
tr_s!メソッドは二つの引数を受け取ります。最初の「from_str」は置換対象の文字集合を、二番目の「to_str」は置換後の文字集合を指定します。from_str内の各文字はto_strの対応する位置の文字に置き換えられます。to_strが短い場合、to_strの最後の文字が繰り返されます。from_strには「^」で否定文字集合を、「a-z」のようにハイフンで文字範囲を指定することも可能です。
このメソッドの特徴は、文字の置換後、結果として連続する同じ文字が一つにまとめられる(スクイーズされる)点です。例えば、文字列中の「o」を「」に置換した場合、「Hell__ World」が「Hell_ World」のように、連続するアンダースコアが一つになります。これは、冗長な繰り返し文字を効率的に除去したい場合に非常に有用です。
文字列データの整形やクリーニングに役立ちますが、元の文字列を保持したい場合は、非破壊的なtr_sメソッドをご利用ください。
構文(syntax)
1str = "aaabbbccc" 2str.tr_s!("abc", "ABC")
引数(parameters)
from_str, to_str
- from_str: 置換対象の文字を含む文字列
- to_str: 置換後の文字を含む文字列
戻り値(return)
String or nil
tr_s! メソッドは、文字列内で連続する指定した文字を1つに圧縮した新しい文字列を返します。圧縮が行われなかった場合は、元の文字列を返します。