Rubyリファレンス: Home

squeeze, squeeze! (String)

Edit   History

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

str.squeeze([character, ...])

squeezeメソッドは、文字列中で同じ文字が連続している部分を1つの文字にまとめ、新しい文字列を返します。

引数を指定すると、指定された文字だけをまとめます。引数の指定のしかたはcountメソッドと同じです。

s = "www.gooooogle.com"
puts s.squeeze
s = "  hello,    ruby  world"
puts s.squeeze(" ")
w.gogle.com
 hello, ruby world

Ruby 1.9 Ruby 1.9では、漢字やひらがななど2バイト以上の文字もまとめることができます。Ruby 1.8では、"あ"は1文字ではなく、1バイト文字3つの並び(UTF-8の場合)と見なされるのでうまくいきません。

# encoding: utf-8
s = "おおおかやま"
puts s.squeeze("お")
おかやま
str.squeeze!([character, ...])

squeeze!メソッドは、文字列中で同じ文字が連続している部分を1つの文字にまとめます。レシーバ自身を変更するメソッドです。戻り値は、変更があった場合はレシーバ自身、ない場合はnilです。

引数の指定のしかたはcountメソッドと同じです。

s = "heeelllloooo"
s.squeeze!("aiueo")
puts s
hellllo

関連項目