2013-09-24 103 views
0

我有兩個變量,但值相同,一個是從數據庫中檢索到的字符串,另一個是在程序中生成的。對於爲例:字符串在Android中不具有相同的值

String encodedImage="FFD8FFFE002460000D11000000000000000000000000000000F00040" 
+"120B510451040000FFDB008400090607080705090807080A09090A0D160E0D0C"; 

//這是在程序中產生的可變

String vartable="FFD8FFFE002460000D11000000000000000000000000000000F00040\r\n120B510451040000FFDB008400090607080705090807080A09090A0D160E0D0C 

//這是從數據庫檢索到的字符串,它是一個JSON然後解析爲一個字符串

字符串是一張圖片的表示,所以它要長得多,但這裏是前兩行。 的問題是,如果我比較字符串2

if(encodedImage.equalsIgnoreCase(vartable) 

我獲得了2串不匹配 任何幫助嗎? 我正在做一個android應用程序,我必須有相同的字符串才能擁有相同的圖片

回答

1

您在一個字符串中有一個\r\n序列(vartable)。因此,兩個字符串不相等 - 其中一個字符串有兩個字符。您可以通過調試輕鬆檢測到這一點 - 兩個字符串的長度不一樣,這可能是equals及其變體執行的第一個檢查之一。

+0

我想這是沒有考慮作爲編譯時的字符,這是返回到一個新行 – user2696750

+0

當然它被認爲是一個角色。請嘗試調試您的程序,並查看您嘗試比較的兩個字符串的長度。兩個不同長度的字符串永遠不會相等。比較之前可能需要刪除空白處? –

+0

當我將該字符串放入textview中時我看不到\ r \ n – user2696750

1

試試這個,

vartable = vartable.replaceAll("\r\n", ""); 

,然後比較兩個字符串,

if (encodedImage.equalsIgnoreCase(vartable)) 
+0

我剛試過,它工作正常。 – Deepak

+0

\ n \ r以json格式顯示,但是當我將json解析爲字符串時,我沒有看到\ n \ r – user2696750

+0

您可以分享您的json或url嗎? – Deepak

相關問題