проблема соответствия Java-строки - PullRequest
3 голосов
/ 23 февраля 2010

Я столкнулся с очень простой проблемой. Некоторое время мелочи могут занять весь день :( но спасибо членам stackoverflow, которые всегда пытаются помочь:)

Я пытаюсь сопоставить 2 строки, если они совпадают, должно вернуть TRUE

сейчас я использую это

if (var1.indexOf(var2) >= 0) {
return true;
}

Но если var1 имеет значение "keep", а var2 имеет значение "inta" или "ain" и т. Д., Он все равно возвращает true :(. Есть ли способ в Java, который может сделать полное совпадение текста не частичным? Например

if("mango"=="mango"){
return true;
}

спасибо! ! !

Ответы [ 4 ]

5 голосов
/ 23 февраля 2010

Почему бы просто не использовать встроенный метод String equals()?

return var1.equals(var2);
4 голосов
/ 23 февраля 2010
if( "mango".equals("mango") ) { 
   return true;
}

Будьте осторожны, не используйте == для сравнения строк в Java, если вы действительно не знаете, что делаете.

3 голосов
/ 23 февраля 2010

используйте equals или equalsIgnoreCase на java.util.String для сопоставления строк. Вам также нужно проверить null на объекте, который вы сравниваете, я обычно предпочитаю использовать commons StringUtils для этих целей. У него очень хорошие утилиты для обычных строковых операций.

1 голос
/ 23 февраля 2010

Вот пример, показывающий, почему == не то, что вам нужно:

String s1 = new String("something");
String s2 = new String("something");
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));

В действительности, хотя s1 и s2 содержат одинаковую последовательность символов, они не относятся к одному и тому же месту в памяти. Таким образом, это печатает false и true.

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