>

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

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

Описание

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

Лексикографическое сравнение работает посимвольно слева направо: как только встречаются два различающихся символа, их числовые коды (Unicode/ASCII) определяют результат. Например, "banana" больше "apple", потому что 'b' (98) стоит после 'a' (97). Если одна строка является префиксом другой, более длинная строка считается большей.

Синтаксис

myString1 > myString2

Параметры

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

Возвращает

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

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

  • Сортировка массива строк — например, упорядочивание списка имён пользователей или команд перед выводом на дисплей.
  • Валидация ввода — проверка, что введённая пользователем строка не превышает некоторого порогового значения (например, код доступа должен быть «не больше» заданного).
  • Бинарный поиск по алфавитному списку — сравнение текущего элемента с целевым при поиске в отсортированном массиве String.
  • Фильтрация команд — отбор команд, которые в алфавитном порядке следуют после определённого ключевого слова.

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

  • Регистр имеет значение. Заглавные буквы имеют меньший код, чем строчные ('A' = 65, 'a' = 97), поэтому "Zebra" окажется меньше "apple". Если нужно регистронезависимое сравнение, приведите обе строки к одному регистру методами toLowerCase() или toUpperCase() перед сравнением.
  • Это не языковая сортировка. Оператор сравнивает числовые коды символов, а не следует правилам конкретного языка. Кириллические строки сравниваются корректно между собой, но не в смешанном тексте с латиницей.
  • Пустая строка всегда меньше непустой. "" не больше любой строки, содержащей хотя бы один символ.
  • Префикс меньше полного слова. "cat" меньше "cats", потому что при равенстве всех символов более короткая строка считается меньшей.
  • Объекты String потребляют динамическую память. При частых сравнениях в цикле следите за фрагментацией кучи на платах с малым объёмом RAM (Uno, Nano и подобные). Для критичных по памяти проектов рассмотрите работу с C-строками (char[]) и функцией strcmp().