Stringの比較

文字列の比較を行うつもりで以下のようなプログラムを作成した.このプログラムが何を出力するか予想せよ. また,Stringクラスのドキュメントを参考に 期待通りの動作をさせるように修正せよ.

StringCompare.java
public class StringCompare {
    public static void main(String args[]) {
        String str1 = new String("Hello");
        String str2 = new String("Hello");

        System.out.println("" + (str1 == str2));
    }
}

ふたつのString型のオブジェクトが作成され,そのIDが変数str1, str2に格納される. 演算子==はその値が等しいかを判定する述語なので,str1, str2の値,すなわちIDが等しいかを比較してしまう. そのため,プログラムはfalseを出力する.

StringCompare
文字列の内容を比較したい場合はStringクラスのequalsメソッドを用いて,str1.equals(str2)またはstr2.equals(str1)のようにする.