I want to sort below List of strings as per user locale
List<String> words = Arrays.asList(
"Äbc", "äbc", "Àbc", "àbc", "Abc", "abc", "ABC"
);
For different user locale sort output should be different as per there locale.
How to sort above list as per user locale ?
I tried
Collections.sort(words , String.CASE_INSENSITIVE_ORDER);
But this is not working for localization, so how to pass locale parameter to Collections.sort()
or is there any other efficient way ?
You can use a sort with a custom Comparator. See the Collator interface
Collator coll = Collator.getInstance(locale);
coll.setStrength(Collator.PRIMARY);
Collections.sort(words, coll);
The collator is a comparator and can be passed directly to the Collections.sort(...)
method.