String Comparison Operators: операторы сравнения строк
Учимся сравнивать строки в Arduino: алфавитный порядок, операторы ==, !=, <, > и методы equals(), equalsIgnoreCase() — с разбором типичных ловушек.
Операторы сравнения String — ==, !=, >, <, >=, <=, а также методы equals() и equalsIgnoreCase() — позволяют сравнивать строки в алфавитном порядке. Это полезно при сортировке, поиске совпадений, разборе команд и во многих других задачах.
Как это работает
Оператор == и метод equals() делают одно и то же. Иными словами, запись
if (stringOne.equals(stringTwo)) {
полностью эквивалентна
if (stringOne ==stringTwo) {
Операторы > (больше) и < (меньше) сравнивают строки посимвольно, начиная с первого символа, в котором строки различаются. Например, "a" < "b" и "1" < "2", но "999" > "1000" — потому что символ 9 идёт после 1 в таблице ASCII.
Важно: числа в виде строк сравниваются иначе, чем числа!
Операторы сравнения строк работают с символами, а не с числовыми значениями. Поэтому
"999"окажется «больше»"1000", хотя математически это не так. Если нужно сравнить числа — используйте типыint,floatилиlong, а неString.
Типичные ошибки
- Сравнение числовых строк как чисел. Строка
"10"будет «меньше» строки"9", потому что символ'1'стоит раньше'9'в алфавитном порядке. Это контринтуитивно, но именно так работает лексикографическое сравнение. - Регистр имеет значение. Оператор
==и методequals()чувствительны к регистру:"Hello"и"hello"— разные строки. Если регистр не важен, используйтеequalsIgnoreCase(). - Сравнение с
NULL. Попытка сравнить неинициализированныйStringможет привести к непредсказуемому поведению. Убедитесь, что строки инициализированы перед использованием.
Необходимое оборудование
Схема подключения
Для этого примера никаких дополнительных компонентов не нужно. Достаточно подключить плату к компьютеру через USB и открыть монитор порта в Arduino IDE.

Плата Arduino UNO — дополнительные компоненты для этого примера не требуются.
Код
Как проверить результат
Откройте монитор порта в Arduino IDE (Ctrl+Shift+M или через меню «Инструменты»). Скетч выведет результаты сравнений строк — вы увидите, какие из них истинны (true), а какие ложны (false). Это удобный способ убедиться, что логика сравнений работает так, как вы ожидаете, прежде чем встраивать её в более сложный проект.
Где пригодится
- Разбор команд, приходящих через Serial: сравниваете полученную строку с известными командами (
"ON","OFF","STATUS"). - Алфавитная сортировка массива строк.
- Проверка паролей или кодовых слов (только не полагайтесь на это в серьёзных системах безопасности).
- Фильтрация дублирующихся значений при логировании данных.
Дополнительные материалы
Больше базовых примеров можно найти в разделе built-in examples.
Также стоит заглянуть в language reference — подробный справочник по языку программирования Arduino.
Последнее обновление: 2015/08/11, SM