BohYoh.comトップページへ
Java FAQ
目次

二つの文字列が等しいかどうかの比較はどうするのですか。

 文字列の比較にはString.equalsメソッドを使います。
 整数型や実数型などの値が等しいか/等しくないかの判断に利用する、等値演算子==および!=は、文字列の比較においては利用できません。というのも、

String s1, s2; /* … */ if (s == t) /* … */

は、文字列stの内容が等しいかどうかを比較するのではなく、s1s2が、同じオブジェクトであるかどうかの比較と解釈されてしまうからです。
 以下のプログラムを実行してみましょう。str1もstr2も"ABCDEF"です。
 str1とstr2は別のオブジェクトですから、==演算子による比較結果は偽となります。一方、equalsメソッドによる比較では、内容が同一であるとの結果が得られます。

// // 文字列を比較する // class CompareString { public static void main(String[] args) { String str = "DEF"; String str1 = "ABC" + str; // "ABCDEF"となる String str2 = "ABC" + str; // "ABCDEF"となる if (str1 == str2) System.out.println("str1 == str2"); else System.out.println("str1 != str2"); // こちらが実行される if (str1.equals(str2)) System.out.println("Str1 is equal to str2."); // こちらが実行される else System.out.println("Str1 isn't equal to str2."); } }


戻る

BohYoh.comロゴ