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の方が好みかも。