Бесплатный курс по java. Зарегистрируйтесь для отслеживания прогресса →

Java: Сравнение строк

Одно и то же значение-строка может существовать в программе в нескольких экземплярах. Если два раза посчитать значение "1" + "2", то получим, конечно, два одинаковых значения "12", но это будут именно два одинаковых значения, а не одно и то же. В памяти компьютера в двух разных местах будут находиться две одинаковые строки.

А важно это потому, что операции == и !=, будучи примененными к строкам, проверяют именно сравнивается ли одно и то же значение. И для двух самостоятельных строк "12" результат применения == будет false!

На самом деле, вероятно, не стоит погружаться в эту тему прямо сейчас, наши уроки построены таким образом, чтобы ясное понимание этого принципа вам еще долго не понадобилось, важно знать конкретное его следствие.

А именно, как в таком случае нужно сравнивать строки именно по значению?

Чтобы сравнить str1 и str2, нужно написать str1.equals(str2) - это выражение логического типа проверяет, что строка str1 и строка str2 имеют равные значения, независимо от того, как они располагаются в памяти.

Тип character

Символы, в отличии, от строк, прекрасно проверяются с помощью обычного сравнения.

Задание

Реализуйте метод isPalindrome(), который определяет, является ли слово палиндромом или нет. Палиндром это слово, которое читается одинаково в обоих направлениях.

App.isPalindrome("шалаш"); // true
App.isPalindrome("ага"); // true
App.isPalindrome("хекслет"); // false

// Слова в метод могут быть переданы в любом регистре
App.isPalindrome("Ага"); // true

Для определения палиндрома, необходимо перевернуть строку и сравнить ее с исходной. Для этого воспользуйтеь методом StringUtils.reverse()

StringUtils.reverse("мама"); // "амам"

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном сообществе