2011-04-18 3 views
0

У меня есть имя переменной с именем, которое имеет значение «Javascript, XML, XHTML, CSS, Ajax». Мне нужно сравнить в выражении if, если заголовок равен вышеуказанному значению, нужно запустить некоторый код.Как сравнить несколько слов, разделенных запятой в выражении if?

Я использовал

if (title == "Javascript,XML,XHTML,CSS,Ajax"){ 

} else if (title == " ") { 

} else { 

} 

Когда заголовок имеет нулевое значение, код переходит на второй else части и получает правильный результат. Но когда заголовок равен Javascript, XML, XHTML, CSS, Ajax, код переходит к последней части else вместо перехода в часть if.

Какая ошибка я здесь сделал? Я проверил верхний строчный регистр, а также написание вместе с разделителем-разделителем строка такая же, как и в заголовке переменной. Тогда почему я не получаю правильный ответ.

ответ

3

Оператор сравнения == - это неправильный способ сравнения содержимого строки. Вместо этого вы должны использовать .equals метод:

if (title.equals("Javascript,XML,XHTML,CSS,Ajax")) { 
2

Вы используете == для сравнения строк. Вы должны использовать title.equals("Javascript, ...") для сравнения строк; в противном случае вы проверяете, являются ли они фактически одним и тем же объектом в памяти.

0

Если вы используете Java, вам необходимо использовать if (title.equalsIgnoreCase("Javascript,XML,XHTML,CSS,Ajax")). Оператор equals используется для определения того, имеет ли два указателя одинаковое значение (т. Е. Указывает на один и тот же объект).

0
if(title.equals("Javascript,XML,XHTML,CSS,Ajax")) { 
.... 
} 

Другой совет, вы должны сначала взглянуть на базовую Java!

0

В Java строки являются объектами. Оператор == сообщает вам, являются ли они одним и тем же экземпляром одного и того же объекта. Используйте вместо этого метод equals (...).

Смежные вопросы