web_Developer_Victor
@web_Developer_Victor
Что такое google?

Почему «» != «» ??

5c6fc2f7d2efd360203743.png5c6fc3017024f367990732.png

На картинках хорошо видно, что song.get(0) == "", но когда дело доходит до if (song.get(0) == ""), то это возвращает false и переходит в else (если изменить на if (song.get(0) != ""), то оно вернет true). Что я делаю не так? Почему "" != "" ??
  • Вопрос задан
  • 316 просмотров
Решения вопроса 4
@Strannyk
В Java строки являются объектами, а объекты равны между собой, только если это один и тот же объект. Для сравнивания строк используйте метод equals.
Ответ написан
Комментировать
@Neonoviiwolf
Flutter developer
строки так не сравнивают, нужен "equals()"
Ответ написан
Комментировать
@distrik
Programador
Оператор == в случае с объектами сравнивает ссылки. При создании строк с одинаковым значением нет гарантии, что это окажется один и тот же объект, а значит они могут иметь разные ссылки.
Для сравнения объектов принято испольховать оператор equals.
Так же, строки можно сравнить через ==, если сравнивать не сами объекты, а результаты их интернирования:
str1.intern() == str2.intern()
И все же, имхо, лучше использовать equals()
Ответ написан
Комментировать
@Shiftuia
Java-программист
String str1 = new String("java");
String str2 = new String("java");

System.out.println(str1 == str2);
System.out.println(str1.equals(str2));


Данный код выведет на консоль
false
true

Это связано с тем, что объекты, которые мы сравниваем с помощью == разные
Сравнение значений происходит с помощью equals
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
18 апр. 2024, в 13:01
3000 руб./за проект
18 апр. 2024, в 12:52
500000 руб./за проект