Строковый массив [0] не передается в if - PullRequest
0 голосов
/ 23 января 2012

Привет всем, у меня есть вопрос:

У меня есть массив

String[] parte

и мне нужно первое значение массива, поэтому я сделал:

String verifica = parte[0] // It can be N (for Name) L (for List) and E (for Error)

Почему, если я запускаю этот код и знаю, что "verifica" - это L

if (verifica == "L") { //If code
} else { //Else code
}

он всегда возвращал мне остальной код

Спасибо, оооочень много

-Matteo

Ответы [ 4 ]

5 голосов
/ 23 января 2012

Сравнение строк в Java должно быть сделано с String.equals():

if (verifica.equals("L")) { //If code

То, что вы пытались сделать, это сравнивать два разных объекта, а не их содержимое.

2 голосов
/ 23 января 2012

Вам нужно использовать:

if (verifica.equals("L")) { //If code
} else { //Else code
}

вместо '=='.'==' в Java проверяет идентичность объекта в памяти, где необходимая вам функциональность заключается в сравнении значений String.Я столкнулся с этой ошибкой, чтобы понять разницу (я пришел из C # фона) и в Java.

1 голос
/ 23 января 2012

Вы хотите if (verifica.equals("L")) или if (verifica.compareTo("L") == 0). == не является надежным оператором для сравнения строк.

1 голос
/ 23 января 2012

Используйте оператор equals для строк:

if (verifica.equals("L"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...