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

広告

「+」メソッドを使うことで文字列と文字列を連結して新しい文字列を作成することが出来ました。これと似たものとして元になる文字列オブジェクトそのものに他の文字列を追加するメソッドも用意されています。Stringクラスで用意されている「<<」メソッドを使います。

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

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

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

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

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

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

またまったく同じ処理を行う「concat」メソッドもStringクラスでは用意されています。

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

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

print("Tokyo" << ",Japan")

サンプルプログラム

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

test8-1.rb

#! ruby -Ku
require "kconv"

print(Kconv.tosjis("こんにちは" << "山田さん" + "¥n"))

上記のプログラムを「test8-1.rb」として保存します。文字コードはUTF-8です。そして下記のように実行して下さい。

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

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)