末尾の改行文字を取り除く

広告

ファイルなどから文字列を読み込んだ場合など文字列に含まれる改行文字を取り除いて処理したい場合があります。改行文字は「¥r」の他に「¥r¥n」「¥n」などがあり1つ1つ検索して削除するのは面倒です。そこで文字列の最後に含まれる改行文字を取り除く方法を確認します。Stringクラスで用意されている「chomp」メソッドを使います。

chomp([rs])

引数に指定した改行文字が文字列の最後に含まれていた場合、取り除いて新しい文字列を返します。引数を省略した場合には末尾にある「¥r」「¥r¥n」「¥n」の全ての改行文字が削除されます。

具体的には次のように記述します。

str = "Hello¥r"
newStr = str.chomp

上記の場合には変数「newStr」には「Hello」が格納されます。

なお「chomp」の代わりに「chomp!」メソッドを使った場合は末尾の改行文字を取り除いた結果を新しい文字列として返すのではなく、元の文字列を書き換えます。

chomp!([rs])

具体的には次のように記述します。

str = "Hello¥r"
str.chomp!

上記の場合には変数「str」には「Hello」が格納されます。

サンプルプログラム

では簡単なサンプルで試してみます。

LibraryString10.rb

#! ruby -Ks

str = "Hello¥n"
print("対象の文字列:", str, "¥n")
print("改行確認用の行¥n")

newStr = str.chomp
print("末尾の改行文字を削除した結果:", newStr, "¥n")
print("改行確認用の行¥n")

実行結果は次のようになります。

末尾に含まれる改行文字を削除する

( Written by Tatsuo Ikura )