2011-07-29 23 views
0
if (result.equalsIgnoreCase("300 OK")){ 
    Log.d(result, "in 300 OK BUT UNKNOWN : "+ result); 
    MyGPS.location_info = "Unknown"; 
}else if (result.equalsIgnoreCase("400 ERROR")) 
    Log.d(result, "400 ERROR : "+ result); 
else Log.d(result, "else : "+ result); 

以上是一個簡單的測試,result"300 OK"爲什麼錯誤字符串比較在Android上不起作用?

的問題是,當我想到"300 OK" ...

07-29 14:06:56.126: VERBOSE/doing background(5807): 300 OK 

...它實際上進入到else情況下...

07-29 14:07:00.494: DEBUG/(5807): else : 300 OK 

它爲什麼要這樣做呢?它應該顯示:

in 300 OK but unknown 
+0

您希望結果等於300好,但是您是否在if之前記錄了結果,看它是否正確? – Androider

+0

你確定你的結果是「300 OK」,而不是「300 OK」。先嚐試修剪它 – Maggie

+0

em我用log n請參考300 OK – sayvortana

回答

0

您的結果字符串似乎比您比較的字符串字面長/不同。也許contains是更好的方法選擇(與equalsIgnoreCase相比)。如果需要,可以與toLowerCase一起使用以實現不區分大小寫。

+1

如何: if(results.contains(「300 OK」)&&!result.contains(「location」 )) ? – Maggie

+0

我們有300 OK |位置 300 OK 400錯誤 所以不能使用包含 – sayvortana

+0

這兩個Maggies的評論可能是有用的。 –

0
result.trim().equalsIgnoreCase("300 OK")