2017-04-21 51 views
-1

我遇到了一個奇怪的問題。我試圖比較兩個128位的字符串,我相信它們的每個字符彼此匹配(並且我測試了比較String.chartAt(#)幾次),但是當我做 if(String 1 == String 2) ..其他 .. 它去了else子句。這是爲什麼?當比較Java中的兩個字符串時出現奇怪的布爾答案

+1

use String1.equals(String 2) – Foolish

+0

奇怪的事情:不需要5秒鐘的研究來解決這個問題的新手的數量...但更喜歡花5分鐘寫一個問題這裏。然後:傳入答案的速度與問題之間的奇怪關聯是明顯的重複。 – GhostCat

回答

0

當使用==進行比較時,您正在檢查兩個變量是否指向同一對象(參考比較)。您應該使用字符串equals()方法來比較它們是否相等,因爲它們由相同的字符組成。

description of equals method in java documentation

公共布爾等於(object對象)

比較此字符串指定的對象。如果 且僅當參數不爲null並且是一個字符串對象 表示與此對象相同的字符序列,則結果爲true。