Возможные Дубликаты:
How do I compare strings in Java?
whats the difference between “.equals and ==”ява Println проблема
Привет всем,
System.out.println()
ведут себя по-другому со строками. Может ли один объяснить, почему
Смотрите ниже фрагмент кода
String a ="hello"
String b ="hello"
System.out.println("a==b"+"is"+a==b)
Я ожидаю, что это напечатать 'a==b is true'
, но он просто печатает false
и я не знаю почему.
Фактически, самые современные java-компиляторы пул-строки литералы, поэтому он может фактически напечатать 'a == b is true', хотя это просто удача, и, как было сказано выше,' .equals() '- это то, как вы предполагаетесь для сравнения – davin
@ davin: нет, его пример просто печатает 'false', потому что' a' объединяется в '' a == b "+" is "', и его сравнивают с 'b', используя' == ' , –
@Bart, вопрос не выглядел так, когда я прокомментировал. Ваш комментарий и мой, очевидно, не синхронизированы, я изящно убью свой поток («поток» в смысле программирования, а не в смысле форума), мало интересуясь вопросом, я просто указывал на побочный факт, хотя со всеми этими изменениями , это уже не актуально. – davin