Rubyリファレンス: Home

rstrip, rstrip! (String)

Edit   History

標準クラス・モジュール > String > rstrip, rstrip!

str.rstrip

rstripメソッドは、文字列の末尾の空白文字を除去した新しい文字列を返します。

除去される空白文字は、半角空白(0x20)とタブ、復帰、改行など(0x09 - 0x0dの範囲の制御文字)です。また、末尾のヌル文字(0x00)も除去されます。

s = "hello, world  \r\n"
p s.rstrip
"hello, world"
str.rstrip!

rstrip!メソッドは、レシーバ自身の文字列から末尾の空白文字を除去します。変更があった場合はレシーバ自身を、変更がない場合はnilを返します。

s = "hello, world  \r\n"
s.rstrip!
p s
"hello, world"

ユニコードの空白文字

Ruby 1.9 Ruby 1.9.1では、除去される空白文字は正規表現の[:space:]の文字と同じで、全角空白などユニコードの空白文字も削除できます。

Ruby 1.9.2では、1.9.1の仕様は変更され、1.8と同じくアスキー文字の空白文字だけが削除されます。

末尾のヌル文字の扱い

Ruby 1.8とRuby 1.9では、末尾のヌル文字の扱いに若干違いがあります。「ヌル文字、空白文字」という並びがあると、Ruby 1.8では空白文字だけを削除します。Ruby 1.9では両方とも削除します。

s = "hello, world\0\n"
p s.rstrip
"hello, world\000"   (Ruby 1.8の場合)
"hello, world"       (Ruby 1.9の場合)

関連項目