- Home ›
- Ruby入門 ›
- 文字列(String)クラス
文字列が等しいか比較する
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 )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。