Почему сравнение строк ошибок не работает на Android? - PullRequest
0 голосов
/ 29 июля 2011
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".

Проблема в том, что когда я ожидаю "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 

Ответы [ 2 ]

0 голосов
/ 29 июля 2011
result.trim().equalsIgnoreCase("300 OK")
0 голосов
/ 29 июля 2011

Ваша строка результата кажется длиннее / отличается от строкового литерала, с которым вы сравниваете ее.Возможно, содержит - лучший выбор метода (по сравнению с equalsIgnoreCase).Используйте его вместе с toLowerCase , чтобы добиться нечувствительности к регистру, если вам нужно.

...