==
Оператор == сравнивает два объекта 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().