文字列オブジェクトに文字列を追加する

文字列と文字列を連結した場合は新しい文字列を作成しますが、元の文字列オブジェクトに別の文字列を追加することもできます。ここでは Ruby で文字列オブジェクトに文字列を追加する方法について解説します。

(Last modified: )

文字列オブジェクトに文字列を追加する

文字列オブジェクトに別の文字列を追加するには、 String クラスで用意されている << メソッドを使います。

文字列 << 追加する文字列

<< メソッドの左辺にある文字列オブジェクトに右辺にある文字列オブジェクトを追加します。結果として左辺の文字列オブジェクトが持つ文字列が変化します。

例えば次のように記述します。

str = "Tokyo"
str << ",Japan"

上記では変数「str」に文字列オブジェクトの「Tokyo」を代入しています。そして変数に対し << メソッドを使って文字列の「,Japan」を追加しています。この結果、変数「str」が指し示していた文字列オブジェクトそのものが「Tokyo,Japan」に変更されます。

+ メソッドとの違いは新しい文字列オブジェクトを作成するのではなく、追加対象の文字列オブジェクトそのものに他の文字列を追加することです。

なお String クラスの concat メソッドを使用すると同じこと行うことができます。

文字列.concat(追加する文字列)

<< メソッドも concat メソッドも文字列が追加されたあとの文字列オブジェクトを返しますので次のように 1print メソッドなどの引数に指定することも可能です。

print("Tokyo" << ",Japan")
サンプルコード

では簡単なプログラムで確認してみます。

# encoding: UTF-8

str = "こんにちは。"
puts(str.object_id)

str << "山田さん。" 
puts(str)
puts(str.object_id)

下記のように実行して下さい。

文字列オブジェクトに文字列を追加する

-- --

Ruby で文字列オブジェクトに文字列を追加する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。