Java Stringの内容比較

JavaのStringは結構罠が多い。

        String a = new String("aaaa");
        String b = new String("aaaa");
        if (a == b) {
            System.out.println("同じです");
        }
        else {
            System.out.println("違います");
        }

とやると、実行結果は、「違います」になる。
なぜなら、aとbは別のオブジェクトだから。
こういう場合、文字列のオブジェクトではなく内容を比較をする際は、

        String a = new String("aaaa");
        String b = new String("aaaa");
        if (StringUtils.equals(a, b)) {
            System.out.println("同じです");
        }
        else {
            System.out.println("違います");
        }

か、

        String a = new String("aaaa");
        String b = new String("aaaa");
        if (a.equals(b)) {
            System.out.println("同じです");
        }
        else {
            System.out.println("違います");
        }

で、「同じです」になる。
どっちでもいいけど、インタフェースとしてはStringUtilsの方が好みかも。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です