>
Оператор > сравнивает два объекта 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().