Ruby Tips!

RubyのTipsを紹介します

文字列の末尾に文字列を連結する

Rubyで文字列の末尾に別の文字列を連結するにはString#concatString#<<を使う。

p "abc".concat("123") #=> "abc123"
p "abc" << "123" #=> "abc123"

String#concatString#<<では、以下のように連続して文字列を連結してゆくこともできる。

p "abc".concat("def").concat("ghi") #=> "abcdefghi"
p "abc" << "def" << "ghi" #=> "abcdefghi"

なおString#+=でも文字列を連結することができるが、これはString#+と同様にいちいち新しい文字列を生成してしまうため、メモリ量の観点から多用すべきではない。

文字列に文字列を連結する別の方法として、stringioライブラリを使う方法も存在する。この場合、IOと同様のインタフェースが使用できる。

require 'stringio'

sio = StringIO.new
sio.print("abc")
sio.print("def")
sio.print("ghi")
p sio.string #=> "abcdefghi"