プログラミングでは入力された文字を取得したり、編集したり、表示したりするなど、さまざまな場面で文字列を扱う場面が出てきます。
ここでは Ruby で文字列を扱う基本的な方法を学んでいきましょう。
目次
文字列の表し方
Ruby における文字列の表し方は、以下のようにダブルクォーテーション("
)やシングルクォーテーション('
)を使って囲むのが基本です。
"あいうえお"
'あいうえお'
文字列の途中に特殊文字(改行など)を入れる
文字列の中に改行を入れたい場合は、ダブルクォーテーション("
)の中で \n
を使います。
プログラム
puts "あいう\nえお"
実行結果
あいう
えお
この他にも、インデント(\t
)などの特殊文字があります。
また、"
を文字列の中に入れたいときは \"
で表します。
プログラム
puts "あいう\"えお"
実行結果
あいう"えお
文字列の中で式展開する
文字列の中で変数に格納されている内容や計算結果を表示したい場合は、ダブルクォーテーション("
)の中で #{ }
を使います。
例をいくつか紹介します。
プログラム
favorite_food = "みかん"
p "私の好きな食べ物は#{favorite_food}です。"
実行結果
"私の好きな食べ物はみかんです。"
プログラム
p "計算結果は#{1 + 2}です。"
実行結果
"計算結果は3です。"
ダブルクォーテーション(”)とシングルクォーテーション(’)の違い
ダブルクォーテーション("
)を使った場合は、上のように特殊文字や式の展開ができますが、シングルクォーテーション('
)を使った場合は、そのまま文字列として出力されます。
ダブルクォーテーション(”)を使った場合
プログラム
favorite_food = "みかん"
puts "私の好きな食べ物は#{favorite_food}です。\n計算結果は#{1 + 2}です。"
実行結果
私の好きな食べ物はみかんです。
計算結果は3です。
シングルクォーテーション(’)を使った場合
プログラム
favorite_food = "みかん"
puts '私の好きな食べ物は#{favorite_food}です。\n計算結果は#{1 + 2}です。'
実行結果
私の好きな食べ物は#{favorite_food}です。\n計算結果は#{1 + 2}です。
文字列の編集
文字列の連結(+)
2つの文字列を連結させたい場合は、+
を使います。
プログラム
p "あいう" + "えお"
実行結果
"あいうえお"
文字列の追加(<<)
文字列の後ろに、さらに文字列を追加したい場合は <<
を使います。
プログラム
result = "あいう"
result << "えお"
p result
実行結果
"あいうえお"
指定した文字を削除(delete)
ある文字列から、指定した文字列を削除したい場合は delete を使います。
プログラム
input = "あいうえお"
p input.delete("いうえ")
実行結果
"あお"
アルファベットの大文字を小文字に置き換える(downcase)
文字列中にあるアルファベットの大文字を小文字に変えたい場合は downcase を使います。
プログラム
input = "ABCDE"
p input.downcase
実行結果
"abcde"
アルファベットの小文字を大文字に置き換える(upcase)
文字列中にあるアルファベットの小文字を大文字に変えたい場合は upcase を使います。
プログラム
input = "abcde"
p input.upcase
実行結果
"ABCDE"
ある文字列を別の文字列に置き換える(gsub)
ある文字列を別の文字列に置き換えたい場合は gsub を使います。
以下は「オレンジ」という文字列を「orange」に置き換える例。
プログラム
input = "私はオレンジが好きです。"
p input.gsub("オレンジ", "orange")
実行結果
"私はorangeが好きです。"
指定した区切り文字で 文字列を配列にする(split)
区切り文字を指定して文字列を配列にしたい場合は split を使います。
以下は文字列中のカンマ(,
)で区切って配列にする例。
プログラム
input = "abc,def,ghi"
p input.split(",")
実行結果
["abc", "def", "ghi"]
配列については以降の記事で書きました。詳しくはこちら。
文字列を整数に変換する(to_i)
文字列を整数に変換したい場合は to_i を使います。
プログラム
input = "123"
p input.to_i
実行結果
123
文字列を小数(Floatオブジェクト)に変換する(to_f)
文字列を小数(Floatオブジェクト)に変換したい場合は to_f を使います。
プログラム
input = "1.23"
p input.to_f
実行結果
1.23
文字列の情報取得
文字の数を取得する(length, size)
文字の数を取得したい場合は length または size を使います。
プログラム
input = "あいうえお"
p input.length
実行結果
5
文字が空かどうかを調べる(empty?)
文字が空かどうかを調べる場合は empty? を使います。空(""
や nil
)の場合は結果が true
、それ以外は false
となります。
プログラム
input = "あいうえお"
p input.empty?
実行結果
false
プログラム
input = ""
p input.empty?
実行結果
true
プログラム
input = nil
p input.empty?
実行結果
true
指定した文字が含まれるかどうかを調べる(include?)
指定した文字が含まれるかどうかを調べる場合は include? を使います。含まれる場合は結果が true
、それ以外は false
となります。
以下は「abc」が含まれるかどうかを調べる例。
プログラム
input = "あいうえお"
p input.include?("abc")
実行結果
false
プログラム
input = "abcdef"
p input.include?("abc")
実行結果
true
2つの文字列が同じかどうかを調べる(==)
2つの文字列が同じかどうかを調べる場合は ==
を使います。同じ場合は結果が true
、それ以外は false
となります。if の条件式で用いられることが多いです。
プログラム
input = "abc"
p input == 'あいう'
実行結果
false
プログラム
input = "abc"
p input == "abc"
実行結果
true
==
の代わりに !=
を使うと、2つの文字列が同じでない場合は結果が true
、それ以外は false
となります。
プログラム
input = "abc"
p input != 'あいう'
実行結果
true
まとめ
以上、Ruby で整数や小数を扱う基本的な方法でした!
ここまでの内容をまとめておきます。
- Ruby で文字列を表すときは、ダブルクォーテーション(
"
)やシングルクォーテーション('
)を使って囲む。 - 文字列の中で式展開を行うときは、ダブルクォーテーション(
"
)で囲んで、その中で#{ }
を使って記述する。 - ダブルクォーテーション(
"
)を使った場合は、その中で特殊文字を使ったり 式の展開ができる。シングルクォーテーション('
)を使った場合は、そのまま文字列として出力される。 - 文字列で使えるメソッドを使うことで、文字列の編集や情報を取得できる。