可能重複:
String comparison and String interning in Java差異字符串比較結果B/W ==和串#用==替代
我有一個關於Java中的字符串比較小疑問,考慮以下代碼:
if("String".replace('t','T') == "String".replace('t','T')) {
System.out.println("true");
}
else {
System.out.println("false");
}
上面的代碼總是打印的false
,其中就好像我嘗試像這樣:
if("STring" == "STring") {
System.out.println("true");
}
else {
System.out.println("false");
}
它會一直打印我true
。是的,我知道字符串比較應該用String.equals() or equalsIgnoreCase()
方法完成。但這是面試中問的一個問題,我很困惑。任何人都可以指導我這種行爲?
據我所知,在代碼片段1中,"String.replace('t','T')
是返回對象,因此對象比較返回false。我對嗎?
感謝羅希特耆那教,我說在接受採訪時一樣的,我的假設是正確的.. :) –
@PradeepSimha ..不客氣: )那麼,採訪者的回答是什麼?當然他肯定說過什麼嗎? –
沒什麼,只是他說「OK」..:D –