Se si desidera solo per ordinare le stringhe come se non avessero gli accenti, è possibile utilizzare il seguente:
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);
}
});
questione connessa:
Per casi d'uso più sofisticati, leggere il java.text.Collator
. Ecco un esempio:
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);
}
});
Se nessuna delle regole di confronto predefinite soddisfa le proprie esigenze, è possibile provare a utilizzare il java.text.RuleBasedCollator
.
Devi scrivere il tuo 'comparatore 'e passarlo a' Arrays.sort() '. Per impostazione predefinita, le stringhe sono ordinate in base a * Ordine naturale *. – TheLostMind