2013-03-10 9 views

ответ

4

Используйте String.equals() метод для сравнения String, поскольку == сравнивает ссылки, в то время как equals() используется для сравнения содержимого.

if(string1.equals(string2)){ 
    // DO Something 
} 

Ваш случай: -

if(cevabb.getText().toString().equals(cev0.getText().toString())){ 
    // DO Something 
} 
3

cevabb.getText().toString()==cev0.getText().toString()

должен быть

cevabb.getText().toString().equals(cev0.getText().toString())

или если вы хотите, чтобы сравнить, как объект

использование intern()

cevabb.getText().toString().intern()==(cev0.getText().toString())

4

использования, как это.

if (cevabb.getText().toString().equals(cev0.getText().toString())) { 

.... 

} 

Разница между == и equals() методом.

== Используется для сравнения ссылки. и метод equals проверяет содержимое строковой переменной.

Пример.

Первый пример

String s1 = "FirstString"; 
String s2 = "FirstString"; 

if(s1 == s2) { 
    //This condition matched true because java don't make separate object for these two string. Both strings point to same reference. 
} 

Второй пример

String s1= "FirstString"; 
String s2 = new String("FirstString"); 

if(s1.equals(s2)) { 
    //This condition true because same content. 
} 

if(s1 == s2) { 
    //This condition will be false because in this java allocate separate reference for both of them 
} 

Вывод: Java проверить, существует ли строка или нет. Если мы создадим объект второй строки с использованием нового и имеем разный контент, тогда он создает объект и назначает другую ссылку, а в случае Если мы не создаем объект с использованием нового и не будем иметь один и тот же контент, тогда его назначение будет иметь ту же ссылку, что и первая строка, ,

2

= оператор сравнивает ссылку на строку в памяти. Итак, возможно, что String с тем же значением находится в другом месте памяти и = оператор дает результат false.

Использовать equals или equalsIgnorecase, чтобы он сравнивал значение, хранящееся в ссылке String.

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