Главная chevron_right Уроки chevron_right Встроенные примеры chevron_right Строки chevron_right String Comparison Operators: операторы сравнения строк

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