Вы также можете преобразовать обе строки в верхний или нижний регистр, прежде чем сравнивать их с equals. Этот трюк полезно запомнить для других языков, в которых может не быть эквивалента equalsIgnoreCase.
str.toUpperCase().equals(str2.toUpperCase())
Если вы используете нелатинский алфавит, обратите внимание на эту часть JavaDoc из equalsIgnoreCase, в которой говорится
Обратите внимание, что этот метод не учитывает локаль и приведет к неудовлетворительным результатам для определенных локалей. Класс Collator обеспечивает сравнение с учетом локали.
Ответ 2
Использование String.equalsIgnoreCase().
Используйте ссылку на Java API, чтобы найти ответы, подобные этим:
String.equalsIgnoreCase это наиболее практичный выбор для наивного сравнения строк без учета регистра.
Однако полезно знать, что этот метод не выполняет ни полного свертывания по регистру, ни декомпозиции и поэтому не может выполнять сопоставление без регистра, как указано в стандарте Unicode. Фактически, API-интерфейсы JDK не предоставляют доступ к информации о символьных данных, изменяющих регистр, поэтому эту работу лучше всего делегировать проверенной сторонней библиотеке.
Эта библиотека называется ICU, и вот как можно реализовать утилиту для сравнения строк без учета регистра:
Наивное сравнение с помощью String.equalsIgnoreCase, или String.equals для строк в верхнем или нижнем регистре завершится неудачей даже в этом простом тесте.
(Обратите внимание, однако, что предопределенная функция сворачивания регистра getNFKCCasefoldInstance не зависит от локали; для турецких локалей может потребоваться немного больше работы UCharacter.foldCase).
Ответ 4
Вы должны использовать compareToIgnoreCase метод String объекта.
intcompareValue= str1.compareToIgnoreCase(str2);
if (compareValue == 0) это означает str1 равно str2.