Сортировать массив строк в Java (особый способ)
У меня проблема с этим, так как мне нужно отсортировать это следующим образом:
До:
{aAbB, abBA, AaBb}
После:
{AaBb, aAbB, abBA}
Идея состоит в сортировке заглавной буквы прямо перед ее строчной версией, и это с каждой буквой. Я на самом деле использую Collator для испанского языка (проблемы с 'ñ') и устанавливаю для него значение PRIMARY, чтобы я мог сравнить, если два слова равны, без учета заглавных букв.
2 ответа
Просто делать:
private static Comparator<String> ALPHABETICAL_ORDER = new Comparator<String>() {
public int compare(String str1, String str2) {
int res = String.CASE_INSENSITIVE_ORDER.compare(str1, str2);
if (res == 0) {
res = (str1.compareTo(str2)==0) ? 1 : 0;
}
return res;
}
};
Collections.sort(list, ALPHABETICAL_ORDER);
Inspired from: простой способ сортировки строк в алфавитном порядке (с учетом регистра)