equalsIgnoreCase()
Метод equalsIgnoreCase() сравнивает две строки типа String без учёта регистра — "Hello", "HELLO" и "hello" считаются равными.
Полная статья
Описание
Метод equalsIgnoreCase() сравнивает две строки типа String без учёта регистра. Это означает, что "Hello", "HELLO" и "hello" считаются одинаковыми. Такое поведение удобно, когда пользователь вводит команды через Serial Monitor или другой интерфейс, и вы хотите принять их в любом написании — строчными, заглавными или вперемешку.
Если вам нужно строгое сравнение с учётом регистра, используйте метод equals().
Синтаксис
myString.equalsIgnoreCase(myString2)
Параметры
myString: переменная типаString— строка, у которой вызывается методmyString2: переменная типаString— строка, с которой производится сравнение
Возвращает
true: если myString равна myString2 без учёта регистраfalse: если строки различаются
Где применяется
- Разбор команд, которые пользователь вводит через Serial: например,
"START","start"и"Start"обрабатываются одинаково. - Сравнение ответов от внешних модулей (GSM, Wi-Fi), где регистр в ответе может меняться.
- Обработка пользовательского ввода с кнопок или клавиатуры, когда регистр заранее неизвестен.
- Проверка паролей или кодов доступа, если регистр не важен для вашей задачи.
Практические замечания
- Метод сравнивает только содержимое строк, пробелы и другие символы при этом учитываются. Строка
"hello "не равна"hello". - Если одна из строк пустая (
""), метод вернётtrueтолько в том случае, если вторая тоже пустая. - Метод не изменяет исходные строки —
myStringиmyString2остаются нетронутыми после вызова. - Если
myString2не объявлена или не инициализирована, компилятор выдаст ошибку — убедитесь, что обе переменные существуют до сравнения. - Результат удобно использовать напрямую в условии
if:if (myString.equalsIgnoreCase(myString2)) { ... }