Тесты Пообщаться с GPT Протестировать код
Программирование Аналитика Дизайн Маркетинг Управление проектами
14 Окт 2023
2 мин
2950

Сравнение строк в Java: String.equals против ==

Пройдите тест, узнайте какой профессии подходите

Возникает типичная проблема при работе со строками в языке программирования Java. Вот пример: Код выше выведет «Строки равны», потому что в этом

Возникает типичная проблема при работе со строками в языке программирования Java. Вот пример:

String str1 = "Привет";
String str2 = "Привет";

if (str1 == str2) {
    System.out.println("Строки равны");
} else {
    System.out.println("Строки не равны");
}

Код выше выведет «Строки равны», потому что в этом случае сравниваются две строки-литерала. Однако если строки были бы получены другим способом, например, через ввод пользователя или чтение из файла, то результат мог бы быть другим.

String str1 = new String("Привет");
String str2 = new String("Привет");

if (str1 == str2) {
    System.out.println("Строки равны");
} else {
    System.out.println("Строки не равны");
}

В этом случае код выведет «Строки не равны». Это происходит потому что оператор == сравнивает не сами строки, а ссылки на них. Во втором примере создаются два разных объекта класса String, поэтому ссылки на них будут разными.

Чтобы корректно сравнивать содержимое строк в Java, нужно использовать метод equals(). Этот метод сравнивает символы внутри строк, а не ссылки на них.

String str1 = new String("Привет");
String str2 = new String("Привет");

if (str1.equals(str2)) {
    System.out.println("Строки равны");
} else {
    System.out.println("Строки не равны");
}

Теперь код выведет «Строки равны», так как сравнивается содержимое строк, а не ссылки на них. Это правило следует запомнить и всегда использовать метод equals() для сравнения строк в Java.

Добавить комментарий