文字列の末尾に文字列を連結する
Rubyで文字列の末尾に別の文字列を連結するにはString#concat
かString#<<
を使う。
p "abc".concat("123") #=> "abc123" p "abc" << "123" #=> "abc123"
String#concat
とString#<<
では、以下のように連続して文字列を連結してゆくこともできる。
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"