替换将创建新对象,并且将比较这两个新对象。那为什么它显示错误。
何时在字符串池中添加完全新的字符串?
if("String".replace("g", "G") == "String".replace("g", "G"))
{
System.out.println("True");
} else {
System.out.println("False");
}
答案 0 :(得分:7)
因为replace()
将始终返回 new String实例。因此,对
equals()
代替==
如果要将字符串添加到字符串常量池中,请对两个替换值使用intern()
(并且使用==
:P)< / p>
if ("String".replace("g", "G").intern() == "String".replace("g", "G").intern()) {
System.out.println("True");
} else {
System.out.println("False");
}
}
OP:
true