文字列の比較

広告

文字列の比較を行います。等しいかどうかの比較や大小の比較について確認していきます。

まず等しいかどうかを確認します。「==」メソッド及び「!=」メソッドを使います。

str1 == str2
str1 != str2

「==」メソッドの両端の文字列が等しい場合は「true」を返し、等しく無い場合には「false」を返します。逆に「!=」メソッドの両端の文字列が等しく無い場合は「true」を返し、等しい場合は「false」を返します。

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

str = "test"
if str == "test"
  print("等しい")
else
  print("等しく無い")
end

上記の場合には変数「str」に格納されている文字列が「test」と等しいかどうかを判別しています。

文字列の大小比較

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

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

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

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

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

サンプルプログラム

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

LibraryString3.rb

#! ruby -Ks

str1 = "Hello"
str2 = "Hello"
str3 = "hello"

print(str1 == str2, "¥n")
print(str1 != str2, "¥n")
print(str1 == str3, "¥n")

str4 = "文字列"
if str4 == "文字列"
  print("等しい¥n")
else
  print("等しく無い¥n")
end

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

if str5 < str6
  print(str5, "の方が", str6, "より大きい¥n")
else
  print(str6, "の方が", str5, "より大きい¥n")
end

if str5 < str7
  print(str5, "の方が", str7, "より大きい¥n")
else
  print(str7, "の方が", str5, "より大きい¥n")
end

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

文字列の比較

( Written by Tatsuo Ikura )