Почему метод Character.toLowerCase() игнорируется?

Поясните пожалуйста почему метод Character.toLowerCase() игнорируется и как правильно написать программу в таком подходе решения данной задачи без указания гласных в верхнем регистре во втором методе? При написании этой программы в IDE получаю предупрждение "Result of 'Character.toLowerCase()' is ignored".

import java.util.Scanner;

public class Main {

    public static boolean isVowel(char ch) {
        Character.toLowerCase(ch);
        return Character.toString(ch).matches("[aeiou]");
    }

    /* Do not change code below */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        char letter = scanner.nextLine().charAt(0);
        System.out.println(isVowel(letter) ? "YES" : "NO");
    }
}

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

Автор решения: Михаил Муругов

Игнорируется потому что Вы игнорируете полученный результат. Character это immutable тип, что значит, что созданный экземпляр изменить нельзя. Соответственно, Character.toLowerCase(ch) не меняет ch, а возвращает ch в нижнем регистре.
Пара вариантов, как исправить:

1.

Character.toLowerCase(ch);

заменить на

ch = Character.toLowerCase(ch);

Character.toLowerCase(ch);
return Character.toString(ch).matches("[aeiou]");

заменить на

return Character.toString(Character.toLowerCase(ch)).matches("[aeiou]");

Character.toLowerCase(ch);
return Character.toString(ch).matches("[aeiou]");

заменить на

return Character.toString(ch).matches("(?i)[aeiou]");

matches("(?i)[aeiou]") - проверка совпадения без учёта регистра.

→ Ссылка