Возможные дубликаты:
Получение странного вывода при печати результата сравнения строк
Всем привет,
System.out.println()
по-другому ведет себя со строками. Кто-нибудь может объяснить, почему
См. Фрагмент кода ниже
String a ="hello"
String b ="hello"
System.out.println("a==b"+"is"+a==b)
Я ожидаю, что это напечатает 'a==b is true'
, но он просто напечатает false
, и я не знаю почему.
a==b is true
, хотя это чистая удача, и, как все уже упоминали,.equals()
- это то, как вы должны сравнивать - person davin   schedule 05.02.2011false
, потому чтоa
конкатенируется с"a==b"+"is"
, и это сравнивается сb
с использованием==
. - person Bart Kiers   schedule 05.02.2011a
конкатенировался до сравнения сb
. Проголосовали за повторное открытие. - person Bart Kiers   schedule 05.02.2011