equals()
Метод equals() сравнивает содержимое двух строк String с учётом регистра — в отличие от ==, который сравнивает адреса объектов.
Полная статья
Описание
Метод equals() позволяет точно сравнить содержимое двух строк типа String. Сравнение учитывает регистр символов: строки "hello" и "HELLO" будут считаться разными. Если нужно сравнение без учёта регистра, используйте метод equalsIgnoreCase().
Важно: сравнивать строки через оператор == в Arduino не рекомендуется — он сравнивает не содержимое, а адреса объектов, что может давать непредсказуемые результаты. Для сравнения содержимого всегда используйте equals().
Синтаксис
myString.equals(myString2)
Параметры
myString, myString2: две переменные типа String, содержимое которых нужно сравнить.
Возвращает
true: если строки полностью совпадают посимвольноfalse: если строки различаются хотя бы в одном символе
Где применяется
- Проверка команды, полученной через Serial: пришла ли строка
"ON"или"OFF". - Сравнение введённого пользователем пароля с эталонным значением.
- Разбор текстовых протоколов, где важен точный регистр символов.
- Фильтрация данных от датчиков или модулей, передающих текстовые коды состояния.
Практические замечания
- Метод чувствителен к пробелам: строки
"hello"и"hello "не равны. Если данные приходят из Serial, проверьте, не попадает ли в конец строки символ'\n'или'\r'. - Сравнение пустой строки
""с непустой вернётfalse; две пустые строки вернутtrue. - Если одна из переменных не инициализирована, поведение может быть непредсказуемым — убедитесь, что обе строки объявлены и присвоены до вызова метода.
- Для сравнения без учёта регистра используйте
equalsIgnoreCase()— это удобнее, чем приводить строки к одному регистру вручную черезtoLowerCase()илиtoUpperCase().