RubyのString#chompの挙動:末尾の改行文字は削除される?

Ruby

RubyのStringクラスにあるメソッド「chomp」は、文字列の末尾から特定の文字を削除するために使用されます。特に「chomp」は、末尾の改行文字(
)を削除することが多いため、質問として「String#chompは末尾の改行文字を削除しますか?」というものがよくあります。この記事では、String#chompの挙動について詳しく解説し、その使い方と注意点について説明します。

1. String#chompの基本的な使い方

RubyのString#chompメソッドは、文字列の末尾から改行文字(
)やキャリッジリターン(
)を削除するために使います。例えば、次のようなコードがあります。

str = "Hello\n"
puts str.chomp #=> "Hello"

このように、末尾に改行文字がある場合に、それを削除して返します。特に、ファイルから読み込んだデータやユーザー入力などで、改行を除去したい場合に有効です。

2. String#chompが削除する文字列

String#chompは、デフォルトで末尾の改行文字(
)またはキャリッジリターン(
)を削除します。しかし、削除対象はあくまで末尾の改行文字であり、他の文字列は削除しません。例えば、次のような例では改行以外の文字は削除されません。

str = "Hello!\r"
puts str.chomp #=> "Hello!"

このように、String#chompは「
」や「
」が末尾にある場合にのみ効果があり、それ以外の文字は影響を受けません。

3. 末尾の改行以外の文字を削除する方法

もし末尾の改行だけではなく、他の特定の文字も削除したい場合は、chompメソッドに引数を渡して削除対象を指定することができます。たとえば、次のように指定できます。

str = "Hello!"
puts str.chomp("!\r") #=> "Hello"

この場合、「!」と「
」が末尾にある場合に、それらが削除されます。引数を使用することで、柔軟に削除対象を指定することが可能です。

4. まとめ:String#chompを使いこなす

RubyのString#chompメソッドは、非常に便利なメソッドで、主に末尾の改行文字を削除するために使用されます。改行文字やキャリッジリターン以外の文字を削除する場合は、引数を使って削除対象を指定することができます。これをうまく活用すれば、ファイルの読み込みやユーザー入力の処理に役立つことでしょう。

ぜひ、実際にコードを試してみて、String#chompを効果的に使ってみてください。

コメント

タイトルとURLをコピーしました