Исходя из ответов @Bozho и @aioobe, лексикографические сравнения аналогичны порядку, который можно найти в словаре.
Класс Java String предоставляет метод .compareTo ()
для лексикографического сравнения строк. Используется вот так "apple".compareTo ("banana")
.
Возвращением этого метода является int
, который можно интерпретировать следующим образом:
- возвращает <0, затем строка, вызывающая метод, сначала лексикографически (сначала в словаре) </li>
- возвращает == 0, тогда две строки лексикографически эквивалентны
- возвращает> 0, затем параметр, переданный методу
compareTo
, сначала лексикографически.
Более конкретно, метод обеспечивает первую ненулевую разницу в значениях ASCII.
Таким образом, "computer".compareTo ("comparison")
вернет значение (int) 'u' - (int) 'a'
(20). Поскольку это положительный результат, параметр ("comparison"
) сначала лексикографически.
Существует также вариант .compareToIgnoreCase ()
, который, например, вернет 0
для "a".compareToIgnoreCase ("A");
.