==

Оператор == сравнивает два объекта String и возвращает true, если строки совпадают посимвольно — с учётом регистра.

Полная статья

Описание

Оператор == сравнивает содержимое двух объектов String и возвращает true, если строки полностью совпадают. Сравнение чувствительно к регистру: "hello" и "HELLO" считаются разными строками, даже если набор букв один и тот же.

Это удобный способ проверять ввод пользователя, команды, полученные по Serial, или значения конфигурации — везде, где нужно точное совпадение текста.

Синтаксис

myString1 == myString2

Параметры

  • myString1: первая строка для сравнения.
  • myString2: вторая строка для сравнения.

Возвращает

  • true — строки идентичны посимвольно.
  • false — строки отличаются хотя бы одним символом (в том числе по регистру).

Где применяется

  • Разбор команд из Serial Monitor: пришла строка "on" или "off" — сравниваем напрямую.
  • Проверка пароля или кодового слова, введённого пользователем.
  • Сравнение считанного RFID-тега или штрихкода с эталонным значением.
  • Валидация ответа от внешнего модуля по UART.

Практические замечания

  • Регистр важен: если пользователь может ввести как "ON", так и "on", используйте equalsIgnoreCase() вместо прямого сравнения через ==.
  • Оператор == работает только с объектами класса String. Для C-строк типа char[] тот же оператор == сравнивает адреса в памяти, а не содержимое — результат будет непредсказуемым. Если работаете с char[], используйте функцию strcmp() из стандартной библиотеки C.
  • Пробелы и символы конца строки (\n, \r) тоже влияют на результат. Если строка пришла по Serial и сравнение неожиданно возвращает false, проверьте, не содержит ли она лишних символов — помогает trim() перед сравнением.
  • Объекты String динамически выделяют память в куче. При частом создании и уничтожении строк на платах с малым объёмом RAM (например, Uno) возможна фрагментация памяти. Для критичных по ресурсам проектов рассмотрите работу с char[] и strcmp().