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

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

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

作成日: 更新日:

基本的な使い方

chomp!メソッドは、文字列の末尾から改行文字を取り除く処理を実行するメソッドです。このメソッドはStringクラスに属しており、主にファイルから読み込んだ文字列など、意図せず末尾に付加されてしまう改行文字を処理する際に利用されます。

引数なしで呼び出すと、chomp!メソッドはRubyが動作している環境で標準的に使用される行末文字(例えばWindowsならCRLF \r\n、Unix系ならLF \n、古いMacintoshならCR \r)を自動的に判別し、文字列の末尾からその行末文字を一つだけ取り除きます。例えば、"Hello\n"という文字列に対してchomp!を適用すると"Hello"になります。複数の改行文字が連続している場合でも、末尾の一つの改行文字だけが取り除かれることに注意してください。

特定の文字列を引数として与えることも可能です。この場合、chomp!メソッドは引数で指定された文字列が正確に末尾に存在するかどうかを確認し、存在すればそれを取り除きます。指定された文字列が末尾に存在しない場合は、文字列は変更されません。

メソッド名の末尾に付いている!(エクスクラメーションマーク)は、このメソッドが破壊的メソッドであることを示します。これは、メソッドを呼び出した元の文字列オブジェクト自身が変更されることを意味します。もし文字列に変更があった場合は、変更された文字列自身を返します。変更がなかった場合(取り除くべき改行文字が元々存在しなかった場合)は、nilを返します。元の文字列を変更せずに新しい文字列として結果を得たい場合は、破壊的ではないchompメソッド(!がないバージョン)を使用してください。

構文(syntax)

1str = "Hello Ruby!\n"
2str.chomp!
3# str は "Hello Ruby!" になる

引数(parameters)

separator = $/

  • separator = $/ : 末尾の区切り文字を指定する文字列。デフォルトでは改行文字($/)が指定されます。

戻り値(return)

Stringまたはnil

Stringクラスのchomp!メソッドは、文字列の末尾にある改行文字(\n、\r、\r\n)を削除し、変更された文字列自身を返します。改行文字が存在しない場合はnilを返します。

関連コンテンツ

関連プログラミング言語