文字列オブジェクト

広告

複数の文字が組み合わさったものが文字列です。例えば「hello」や「こんにちは」などが文字列にあたります。

Rubyはオブジェクト指向言語ですので、文字列もオブジェクトの1つになります。細かい点はここでは気にしないでも構いませんが、文字列はStringクラスのオブジェクトとなっています。Stringクラスから文字列オブジェクトを作成するには次のように記述します。

String.new([文字列])

これはStringクラスで用意されているクラスメソッドの「new」を使い、引数に指定した「文字列」という文字の集まりを持つオブジェクトを作成しています。例えば「Hello」と言う文字列を持つ文字列を作成するには次のように記述します。

String.new("Hello")

ただし、このような記述方法を行わなくても次のように文字列を作成することが出来ます。

"文字列"
'文字列'

ダブルクオーテーション(")又はシングルクオーテーション(')で文字列にしたい文字の集まりを囲うことで文字列オブジェクトが作成されます。例えば次のように記述します。

"こんにちは"
'Hello World'

上記で言えば「こんにちは」や「Hello World」がそれぞれ文字列となります。これは次のように記述した場合と同じです。

String.new("こんにちは")
String.new('Hello World')

通常はStringクラスのnewメソッドを使うことはなく、単に「"」か「'」で文字を囲って文字列を作成します。ただ作成した文字列はStringクラスのオブジェクトであり、Stringクラスで用意されているメソッドが使用できることを覚えておいて下さい。

なおダブルクオーテーションで囲った場合とシングルクオーテーションで囲った場合はプログラムの中で扱われ方が異なります。詳しくは次のページ以降で確認していきます。

文字列の出力

今後色々なサンプルプログラムを作成していく上で、文字列を標準出力に出力する場合が結構あります。そこで文字列を出力する方法を簡単に確認しておきます。

文字列を出力するには「print」メソッドを使います。

print([arg1[, arg2, ...]])

引数に指定した文字列を順に出力します。複数の文字列を一度に出力する場合はカンマ(,)で区切って記述します。

なお「print」メソッドは他のプログラム言語の関数のように使用していますが、実際は「Kernel」モジュールで定義されているメソッドです。「Kernel」モジュールは全てのクラスから参照できるメソッドを定義しています。細かい点はあまり気にされなくても構いません。「Kernel」モジュールで用意されているメソッドは、どこからでも関数のように呼び出して使うことが出来るということだけ覚えておいて下さい。

実際には次のように使用します。

print("こんにちは")
print('Hello World')

サンプルプログラム

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

test1-1.rb

#! ruby -Ku
require "kconv"

print(Kconv.tosjis("こんにちは"))
print(Kconv.tosjis('Hello'))

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

文字列オブジェクト

上記のように「こんにちはHello World」と表示されました。「print」メソッドは自動で改行しませんので、続けて出力されています。

オブジェクトのクラス名

なおオブジェクトのクラス名を調べる方法をご紹介しておきます。今回は文字列オブジェクトでしたが、全てのクラスの親のクラスであるObjectクラスで用意されている「class」メソッドを使うとオブジェクトのクラス名を調べる事が出来ます。(細かい点は取りあえず気にしないで結構です。結果だけ見ておいて下さい)。

test1-2.rb

#! ruby -Ku

print("こんにちは".class())

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

文字列オブジェクト

「String」と表示されました。「こんにちは」と言う文字列オブジェクトはStringクラスのオブジェクトであることが分かります。

( Written by Tatsuo Ikura )