Javaで文字列を比較する時の注意点

文字列の値同士を比較する際には、String.equals(Object)メソッドを利用します。

==を使った比較では、同じインスタンスかどうかを比較することになります。

例:

    try {
      String utfStr = new String("abc".getBytes("UTF-8"),"UTF-8");
      String eucStr1 = new String("abc".getBytes("EUC_JP"),"EUC_JP");
      String eucStr2 = new String("abc".getBytes("EUC_JP"),"EUC_JP");
      if (utfStr == eucStr1) {
        System.out.println("utfStr==eucStr1");
      }
      if (eucStr1 == eucStr2) {
        System.out.println("eucStr1==eucStr2");
      }
      if (eucStr1 == eucStr1) {
        System.out.println("eucStr1==eucStr1");
      }
      if (eucStr1.equals(utfStr)) {
        System.out.println("eucStr1.equals(utfStr)");
      }
    } catch (Exception e) {
    }

実行結果:

eucStr1==eucStr1
eucStr1.equals(utfStr)