- Home ›
- Ruby入門 ›
- 文字列(String)クラス
文字列から末尾の改行文字を取り除く
ファイルなどから文字列を読み込んだ場合など文字列に含まれる改行文字を取り除いて処理したい場合があります。改行文字は「\r」の他に「\r\n」「\n」などがあり 1 つ 1 つ検索して削除するのは面倒です。ここでは Ruby で文字列の末尾に含まれる改行文字を取り除く方法を解説します。
(Last modified: )
文字列から末尾の改行文字を取り除く
文字列から末尾の改行文字を取り除く方法です。 String
クラスで用意されている chomp
メソッドを使います。
chomp(rs = $/)
引数に指定した改行文字が文字列の末尾に含まれていた場合、取り除いて新しい文字列を返します。引数に \n
を指定するか省略した場合には末尾にある \r
, \r\n
, \n
のすべての改行文字が削除されます。
引数に空文字を( "" )を指定した場合は、文字列の末尾にある連続する改行コード \r\n
, \n
が削除された新しい文字列を返します。
具体的には次のように記述します。
str = "Hello\n" print(str.chomp) # Hello
文字列の末尾にある \n
が削除された新しい文字列が返されました。
また改行文字が連続していた場合ですが、引数に空文字を指定すると連続する改行文字を取り除きます。
str = "Hello\n\n" puts(str.chomp) # Hello\n str = "Hello\n\n" puts(str.chomp("")) # Hello
引数を省略した場合は、末尾にある改行文字が一つしか削除されません。
なお chomp
メソッドの代わりに String
クラスの chomp!
メソッドを使った場合は末尾の改行文字を取り除いた結果を新しい文字列として返すのではなく、元の文字列を書き換えます。
chomp!(rs = $/)
具体的には次のように記述します。
str = "Hello\n" print(str.chomp!) # Hello
str.chomp!
メソッドの場合は、新しい文字を返すのではなく元の文字列そのものから削除します。
では簡単なサンプルで試してみます。
# encoding: UTF-8 str = "Hello\n" print("[",str.chomp,"]") str = "Hello\n\n" print("[",str.chomp,"]") str = "Hello\n\n" print("[",str.chomp(""),"]")
実行結果は次のようになります。
-- --
Ruby で文字列の末尾に含まれる改行文字を取り除く方法を解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。