Jeśli chcesz tylko do sortowania ciągi jakby nie mieli akcenty, można użyć następujących:
Collections.sort(strs, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
o1 = Normalizer.normalize(o1, Normalizer.Form.NFD);
o2 = Normalizer.normalize(o2, Normalizer.Form.NFD);
return o1.compareTo(o2);
}
});
Powiązane pytanie:
Aby uzyskać bardziej wyrafinowane przypadki użycia, przeczytaj artykuł java.text.Collator
. Oto przykład:
Collections.sort(strs, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
Collator usCollator = Collator.getInstance(Locale.US);
return usCollator.compare(o1, o2);
}
});
Jeśli żaden z predefiniowanych reguł sortowania swoich potrzeb, można spróbować użyć java.text.RuleBasedCollator
.
Musisz napisać własny "komparator" i przekazać go do 'Arrays.sort()'. Domyślnie ciągi są sortowane w oparciu o * Naturalne zamówienie *. – TheLostMind