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().