Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sort List of Strings with Localization

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 ?

like image 1000
Rahul Agrawal Avatar asked Oct 15 '12 05:10

Rahul Agrawal


1 Answers

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.

like image 52
John Dvorak Avatar answered Oct 01 '22 11:10

John Dvorak