我有2個字符串令我非常沮喪。 他們包含,單獨,相同的文字,但是當比較他們Java不說。相同的字符串是不同的
正文爲「LaCoruña」。一個字符串通過Google Geocoder返回,另一個字符串由我進行硬編碼。
我已經試過equals()
返回假,equalsIgnoreCase()
返回假,返回假,compareTo()
不返回0(0被認爲是平等的)。
然後,我將這些字符串轉儲到字節數組中,每個字節使用getBytes("UTF-8")
方法。 同樣,equals()
返回false,Arrays.compare(array1, array2)
也是false。
Arrays.compare()
當每個數組的長度不同或當相同位置的數值不同時返回false。所以我打印了陣列和......驚喜!內容不同。 像這樣:
Array1 [76,97,32,67,111,114,117,-61,-79,97]
Array2 [76,97,32,67,111,114,117,-47 ,-127,97]
問題是爲什麼會發生這種情況,以及如何使它們平等,以便我可以成功進行比較。 我的猜測是Google使用某種編碼(「LaCoruña」包含ñ字符),它與其他硬編碼字符串不同。
請給我一些幫助
在此先感謝。
根據ASCII,這些是根本不同的字符串。第一個開始「La」,第二個開始「A」。 (一個是西班牙語,另一個是加利西亞語。) – 2014-12-02 23:33:45
什麼是「 - 」? – realUser404 2014-12-02 23:37:45
@OliverCharlesworth哇!你很棒,但它是從錯誤日誌中複製錯字。抱歉!我已經更新了我的問題。其實內容是不同的,但長度是一樣的。 – Alberto 2014-12-02 23:42:09