<= (less than or equal)
Оператор <= сравнивает два объекта String лексикографически и возвращает true, если левая строка стоит раньше правой в алфавитном порядке или полностью совпадает с ней.
Полная статья
Описание
Оператор <= сравнивает два объекта String лексикографически — то есть так, как слова сравниваются в словаре, символ за символом по их числовым кодам. Результат true означает, что левая строка либо «меньше» правой (стоит раньше в алфавитном порядке), либо полностью совпадает с ней.
Это полезно, когда нужно упорядочить строки или проверить, что одна строка не превышает другую по алфавиту — например, при сортировке команд, меток или имён.
Синтаксис
myString1 <= myString2
Параметры
myString1: строка слева от оператора — та, которую проверяем.myString2: строка справа от оператора — эталон для сравнения.
Возвращает
true, если myString1 лексикографически меньше либо равна myString2. Иначе возвращает false.
Как работает лексикографическое сравнение
Сравнение идёт посимвольно слева направо по числовым кодам символов (ASCII). Например, "apple" меньше "banana", потому что 'a' (код 97) стоит раньше 'b' (код 98). Строка "abc" меньше "abcd", потому что она заканчивается раньше при совпадающем начале.
Важно помнить: заглавные буквы имеют меньшие коды, чем строчные. Поэтому "Zebra" окажется «меньше» "apple" — 'Z' (код 90) предшествует 'a' (код 97).
Практические замечания
- Сравнение чувствительно к регистру:
"Hello"и"hello"— разные строки, и"Hello"будет считаться меньше"hello". - Если нужно проверить именно равенство двух строк, удобнее использовать
==илиequals()— они выражают намерение яснее, чем оператор<=в одиночку. - Пустая строка
""лексикографически меньше любой непустой строки, поэтому выражение"" <= "anything"всегда вернётtrue. - Оператор работает только с объектами класса
String. Для сравнения строк в стиле C (char[]) используйте функциюstrcmp()из стандартной библиотеки C. - Если обе строки одинаковы, оператор возвращает
true— это отличает его от строгого<, который вернул быfalse.