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の方が好みかも。
コメントを残す