文字列が等しいか比較する

2 つの文字列について文字列が等しいかどうかや文字列の大小などを比較することができます。ここでは Ruby で文字列を比較する方法について解説します。

(Last modified: )

文字列の値が等しいかどうか

二つの文字列の値が等しいかどうかを調べる方法です。 String クラスの == メソッドを使用します。

str1 == str2

文字列の場合、 == メソッドは文字列の値が等しいかどうかを調べます。同じ値であれば true を返し、違う値であれば false を返します。また文字列と文字列の比較の場合は === メソッドも同じ動作をします。

具体的には次のように記述します。

str1 = "ABC"
str2 = "ABC"

if str1 == str2
  puts("等しい")
else
  puts("等しく無い")
end

上記では 2 つの文字列が同じ値のため「等しい」と出力されます。

なお String クラスの eql? メソッドでも文字列と文字列の値が等しいかどうかを調べることができます。

eql?(other)

引数に指定した文字列と同じ値の場合は true を返し、違う値であれば false を返します。

具体的には次のように記述します。

str1 = "ABC"
str2 = "ABC"

if str1.eql?(str2)
  puts("等しい")
else
  puts("等しく無い")
end

上記では 2 つの文字列が同じ値のため「等しい」と出力されます。

文字列の大小を比較する

文字列の比較として < <= > >= の各メソッドを利用することができます。文字列の比較の場合は英字についてはアルファベット順、日本語についてはあいうえお順に並べた場合の順序で比較します。

str1 < str2
str1 <= str2
str1 > str2
str1 >= str2

具体的には次のように記述します。

str1 = "abc"
str2 = "def"
if str1 > str2
  print("大きい文字列は", str1, "です")
else
  print("大きい文字列は", str2, "です")
end

なおアルファベットの大文字と小文字の比較では大文字の方が小さい値となります。(並び順は ABCDEF....XYZabcdef...xyz のようです)。

サンプルコード

では簡単なサンプルで試してみます。

# encoding: UTF-8

str1 = "Hello"
str2 = "Hello"
str3 = "Hey"

puts(str1 == str2)
puts(str1 == str3)

str5 = "abc"
str6 = "def"
str7 = "ABC"

if str5 > str6
  puts(str5 + "の方が" + str6 + "より大きい")
else
  puts(str6 + "の方が" + str5 + "より大きい")
end

if str5 > str7
  puts(str5 + "の方が" + str7 + "より大きい")
else
  puts(str7 + "の方が" + str5 + "より大きい")
end

実行結果は次のようになります。

文字列の比較

-- --

Ruby で文字列を比較する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

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