2011-07-29 9 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); 

以上は、が"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 okと同じですが、ifの前に結果を記録して正しいかどうかを確認してください。 – Androider

+0

あなたの結果は「300 OK」ではなく、「300 OK」ではありませんか?まずトリミングを試してみてください – Maggie

+0

emログを使う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") 
関連する問題