Как сравнить последнюю букву строки с другой буквой

Хочу сравнить последнюю букву в слове с другой буквой.

String str = "гол";
if (str.substring(str.length()-1)=="л")

ошибку не дает но я подозреваю что неправильно


Ответы (2 шт):

Автор решения: Sergey Zh.

нужно через иквалс сравнивать строки!

String str = "гол"
if (str.substring(str.length()-1).equals("л"))

чтобы сравнить предпоследний символ - вот так используется

String str = "гол"
if (str.substring(str.length()-2, str.length()-1).equals("о"))
→ Ссылка
Автор решения: insolor

Вкратце, почему не работает сравнение в вашем коде: строка (String) - это ссылочный тип, сравнение через == для ссылочных типов проверяет равенство ссылок, а не равенство содержимого. Для ссылочных типов сравнение через == даст true только если это один и тот же объект. Примеры смотрите в этом ответе: Как сравнивать строки в Java?

Для сравнения по содержимому используйте метод equals (на примере вашего кода):

String str = "гол";
if (str.substring(str.length()-1).equals("л")) {
    System.out.println("Строка заканчивается на л");
}

Рекомендую почитать про разницу примитивных и ссылочных типов в Java.

Далее, если нужно проверить одиночный символ, а не подстроку, можно использовать метод charAt:

String str = "гол";
if (str.charAt(str.length()-1) == 'л') {
    System.out.println("Строка заканчивается на л");
}

charAt возвращает значение примитивного типа char, поэтому тут сравнение через == (попытка сравнения через equals вызовет ошибку компиляции).

Соответственно, чтобы получить предпоследний символ, используйте str.charAt(str.length()-2).

Если нужно проверить, что строка заканчивается на определенную последовательность символов (судя по коду в комментариях к вопросу, вы это пытаетесь сделать), то вместо посимвольного сравнения лучше использовать метод endsWith (метод проверяет, что строка заканчивается на указанную подстроку, возвращает true если да, иначе false):

String str = "гол";
if (str.endsWith("ол")) {
    System.out.println("Строка заканчивается на ол");
}

https://ideone.com/7hK0iP

→ Ссылка