<

Оператор < сравнивает два объекта String лексикографически и возвращает true, если левая строка идёт раньше правой — как в словаре, по кодам символов.

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

Описание

Оператор < выполняет лексикографическое сравнение двух объектов String: он сопоставляет символы строк слева направо по их числовым кодам и возвращает true, если левая строка «меньше» правой.

Лексикографический порядок — это тот же принцип, по которому слова расставляют в словаре: сначала сравниваются первые символы, и если они совпадают, сравнение переходит к следующим. Например, "apple" меньше "banana", потому что 'a' идёт раньше 'b' в таблице символов.

Синтаксис

myString1 < myString2

Параметры

  • myString1: объект String, стоящий слева от оператора — тот, который проверяется на «меньшесть».
  • myString2: объект String, стоящий справа — эталон для сравнения.

Возвращает

true, если myString1 лексикографически меньше myString2, иначе false.

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

  • Сортировка строк — если нужно упорядочить массив объектов String по алфавиту, оператор < помогает определить, какой элемент должен стоять раньше.
  • Валидация ввода — проверка, что введённая пользователем строка не выходит за допустимый диапазон значений.
  • Меню и команды — сравнение команд, поступающих через Serial, чтобы выбрать нужную ветку обработки.

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

  • Регистр имеет значение. Заглавные буквы имеют меньший числовой код, чем строчные: 'A' (65) < 'a' (97). Это значит, что "Zebra" будет «меньше», чем "apple", хотя интуитивно кажется наоборот. Если нужно сравнение без учёта регистра, приведите обе строки к одному регистру перед сравнением.
  • Сравниваются коды символов, а не смысл слов. Порядок определяется таблицей ASCII, поэтому результат для строк на кириллице или с диакритикой может не совпадать с ожидаемой алфавитной сортировкой.
  • Пустая строка всегда меньше непустой. "" < "a" вернёт true, что логично: у пустой строки нет символов для сравнения.
  • Оператор не изменяет строки — он только читает их содержимое и возвращает булево значение.
  • Результат false не означает равенство. Если myString1 < myString2 вернул false, строки могут быть равны или myString1 может быть больше. Для проверки равенства используйте оператор ==.