Мне нужна библиотека foss, которая включает в себя множество полезных реализаций Comparator, то есть множество маленьких скучных компараторов, готовых к работе.
Компараторы общего пользования Apache
- обеспечить регресс
- нулевой первый/нулевой последний
- цепь
- естественный
- трансформатор
Есть так много других полезных многоразовых возможностей, которые недоступны.
- игнорирование пробелов
- нормализация пробелов
- строки с числовым значением — например, «яблоко 10» > «яблоко 2».
@SPF Я включил некоторый псевдокод, который показывает, как можно нормализовать и сравнивать за один проход без создания каких-либо временных строк и т. Д. Хотя он не проверен и, вероятно, не работает, для быстрого быстрого сравнения не потребуется много времени.
while {
while
get next char from $string1
if none left then
$string1 > $string2 return +1;
get next char from $string1
increase $index1
if previous was whitespace and this is whitespace then
continue;
end if
end while
while
get next char from $string2
if none left then
$string2 > $string1 return +1;
get next char from $string2
increase $index2
if previous was whitespace and this is whitespace then
continue;
end if
end while
result = $char1 - $char2
if result != 0 return
}