2015-05-31 8 views
0

Я читаю inputstream с использованием метода readline(), а затем попытаюсь его сравнить.Сравнение значения readline() со строкой

Код выглядит следующим образом:

//socket is defined before this 
InputStream is = socket.getInputStream(); 

br = new BufferedReader(new InputStreamReader(is)); 

Line = br.readLine(); 

    if (Line == "hey") { 
     Log.d("watsapp client tag", "message pushed !!"); 
     Log.d("watsapp client tag", "" + Line); 


    } 
    else { 

     Log.d("watsapp client tag", "message not pushed"); 
     Log.d("watsapp client tag", "" + Line); 

    } 

Приведенный выше код всегда выполняет еще часть. хотя первое значение входного потока «эй», а второе - нет. Поэтому я ожидаю, что сообщение «logcat» будет нажато !! » и «сообщение не нажат» вместо того, чтобы я как «сообщение не нажат»

05-31 14:46:14.309 6138-6151/? D/watsapp client tag﹕ message not pushed 
05-31 14:46:14.309 6138-6151/? D/watsapp client tag﹕ hey 
05-31 14:46:14.339 6138-6151/? D/watsapp client tag﹕ message not pushed 
05-31 14:46:14.339 6138-6151/? D/watsapp client tag﹕ <Messageadded:1112/> 

Пожалуйста, могу сказать, что происходит неправильно в строке if (Line == "hey"). Благодаря!

+0

Использовать 'equals' при сравнении строк – copeg

ответ

1

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

String firstString = "someValue"; 
String secondString = "someValue"; 

if(firstString.equals(secondString)){ 
    System.out.println("both string are equals"); 
}else{ 
    System.out.println("not equals"); 
} 

Update: Иногда мы сравниваем переменную типа String к String буквальным или постоянной. Тогда лучше выполнить проверку, как это -

String str1 = "aString"; 
String str2 = null; 
System.out.println("aString".equals(str1)); //true; 
System.out.println("aString".equals(str2)); //false; 

Преимущество не сравнивая, как это вы не получите NullPointerException во втором случае.

+0

Я пробовал, чтобы потом это дало мне NPE –

+0

Ну, теперь это сработало ... спасибо –

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