Ruby Tips!

RubyのTipsを紹介します

文字列を指定した文字数に切り詰める

Ruby 1.8では、文字単位の指定で部分文字列を切り出すメソッドが存在しない。このため文字列を指定した文字数に切り詰めるには、String#slice正規表現を組み合わせなければならない。以下は文字列を5文字に切り詰める例だ。

p "abc".slice(/\A.{,5}/m) #=> "abc"
p "abcdefg".slice(/\A.{,5}/m) #=> "abcde"
p "あいうえおかき".slice(/\A.{,5}/m) #=> "あいうえお"

Ruby 1.9では、文字単位の指定で部分文字列が切り出せるようになった。より簡単にString#sliceまたはString#[]を使って、同様の処理を以下のように書ける。

p "abc".slice(0, 5) #=> "abc"
p "abcdefg".slice(0, 5) #=> "abcde"
p "あいうえおかき".slice(0, 5) #=> "あいうえお"