!=

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

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

Описание

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

По сути это инверсия обычной проверки на равенство: там, где == вернёт true, оператор != вернёт false, и наоборот. Логически он эквивалентен вызову !myString.equals(otherString).

Синтаксис

myString1 != myString2

Параметры

  • myString1 — первый объект String, левый операнд сравнения.
  • myString2 — второй объект String, правый операнд сравнения.

Возвращает

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

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

Оператор != удобен, когда нужно отреагировать именно на изменение или несовпадение:

  • Проверить, изменилась ли команда, пришедшая по Serial, по сравнению с предыдущей.
  • Убедиться, что введённый пользователем пароль или код не совпадает с запрещённым значением.
  • Отфильтровать дубликаты: пропускать обработку, только если новое значение отличается от старого.
  • Сравнить метку или идентификатор устройства с ожидаемым эталоном.

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

  • Сравнение всегда чувствительно к регистру. Если источник строки — пользовательский ввод или Serial, стоит заранее привести обе строки к одному регистру или использовать equalsIgnoreCase().
  • equalsIgnoreCase() возвращает bool (совпадают / не совпадают), а не сигнализирует о различии, поэтому для проверки «не равно без учёта регистра» его нужно инвертировать: !myString.equals(otherString).
  • Объект String в Arduino хранится в динамической памяти (heap). Частое создание временных строк для сравнения может фрагментировать RAM — там, где это критично, лучше работать с char-массивами и strcmp().
  • Если одна из переменных не инициализирована, сравнение может дать непредсказуемый результат. Всегда инициализируйте myString1 и myString2 перед использованием.
  • Оператор != работает только между двумя объектами String. Сравнивать String с char-массивом напрямую через != не рекомендуется — лучше явно преобразовать один из операндов.