2015-11-01 4 views
0

Я пытаюсь использовать следующий код в Android Studio. Когда «Отладка», я обнаруживаю, что даже когда значение переменной B «(« оператор if не выполняется и не зависает над ним, он показывает, что он неверен (см. Изображение). Значение ScreenText в этом случае равно " 6 (».Аналогичное сравнение строк не удается

Любая помощь приветствуется.

. enter image description here

+2

Check [Как сравнить строки в Java?] (Http://stackoverflow.com/questions/513832/ how-do-i-compare-strings-in-java) – sam

+0

Просьба отправить код, а не скриншоты кода. – Tomas

ответ

2

Вы должны сравнить строки с помощью метода .equals(). в этом случае, а также для предотвращения исключения нулевого указателя в случае, если ваша переменная B является null, вы должны сделать это следующим образом:

if("(".equals(B)) { 
... 
} 
+0

Спасибо, Луис и ЮнгХоббит :) –

1

Оператор == используется для сравнения ссылок, чтобы проверить, имеют ли два объекта одинаковые ссылки.

Вы хотите сравнить два String s, используйте метод boolean equals(String).

if("(".equals(B)) { 
// your logic 
} 

Здесь сравнение B с "(" константой не требует, чтобы null чеки.

0

Я думаю, что более общий способ сравнения строк в Android является:

TextUtils.equals(B, "("); 

И, кстати, в вашем коде

String.valueOf(c).toString(); 

ToString() является излишним.

0

Если вы хотите сравнить значение или содержимое двух строк, используйте .equals().

if(string.equals("(")){ 
    //Enter your code 
} 

Но если вы хотите, чтобы проверить, что два объекта указывает на то же ссылки используйте ==