文字列の先頭と末尾から空白文字を取り除く

文字列の先頭や末尾に含まれる空白文字を削除することができます。空白文字にはタブなども含まれます。ここでは Ruby で文字列から空白文字を取り除く方法について解説します。

(Last modified: )

文字列から空白文字を取り除く

取り除く位置として先頭又は末尾を指定する

文字列の先頭や末尾に含まれる空白文字を削除する方法です。 String クラスで用意されている strip メソッドを使います。

strip

先頭と末尾の空白文字をすべて取り除いて新しい文字列を返します。 空白文字として削除される文字は空白「 」の他に\t, \r, \n, \f, \vです。文字列右側からは \0 も削除しますが、左側からは削除しません。

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

str = "   Hello\r"
puts(str.strip)  # Hello

先頭や末尾に連続して空白文字がある場合は、まとめて削除されます。

なお strip メソッドの代わりに String クラスの strip! メソッドを使った場合は先頭と末尾の空白文字を取り除いた結果を新しい文字列として返すのではなく、元の文字列を書き換えます。

strip!

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

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

strip! メソッドの場合は元の文字列から空白文字を削除します。

取り除く位置として先頭又は末尾を指定する

strip メソッドは先頭及び末尾の空白文字を取り除きますが先頭だけ又は末尾だけの空白文字を取り除きたい場合には次のメソッドを使用します。

lstrip メソッド及び lstrip! メソッドは文字列の先頭の空白文字を取り除きます。 lstrip メソッドは取り除いた結果として新しい文字列を作成するのに対して lstrip! メソッドは元の文字列を書き換えます。

lstrip
lstrip!

rstrip メソッド及び rstrip! メソッドは文字列の末尾の空白文字を取り除きます。 rstrip メソッドは取り除いた結果として新しい文字列を作成するのに対して rstrip! メソッドは元の文字列を書き換えます。

rstrip
rstrip!
サンプルコード

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

# encoding: UTF-8

str = "   Hello "
puts("対象の文字列[" + str + "]")

puts("stripの結果[" + str.strip + "]")
puts("lstripの結果[" + str.lstrip + "]")
puts("rstripの結果[" + str.rstrip + "]")

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

先頭及び末尾に含まれる空白文字を削除する

-- --

Ruby で文字列から空白文字を取り除く方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。