可能的重复:
Java 中的字符串比较和字符串实习
我对 Java 中的字符串比较有一点疑问,请考虑以下代码:
if("String".replace('t','T') == "String".replace('t','T')) {
System.out.println("true");
}
else {
System.out.println("false");
}
上面的代码总是 print's false
,好像我这样尝试:
if("STring" == "STring") {
System.out.println("true");
}
else {
System.out.println("false");
}
它总是会打印我true
。是的,我知道字符串比较应该用String.equals() or equalsIgnoreCase()
方法来完成。但这是面试中被问到的问题之一,我很困惑。谁能指导我这种行为?
据我所知,在代码片段 1 中,"String.replace('t','T')
正在返回对象,因此对象比较返回 false。我对吗?