I wanted to print sorted Polish names of all available languages.
import java.util.*;
public class Tmp
{
public static void main(String... args)
{
Locale.setDefault(new Locale("pl","PL"));
Locale[] locales = Locale.getAvailableLocales();
ArrayList<String> langs = new ArrayList<String>();
for(Locale loc: locales) {
String lng = loc.getDisplayLanguage();
if(!lng.trim().equals("") && ! langs.contains(lng)){
langs.add(lng);
}
}
Collections.sort(langs);
for(String str: langs){
System.out.println(str);
}
}
}
Unfortunately I have issue with the sorting part.
The output is:
:
:
kataloński
koreański
litewski
macedoński
:
:
w?gierski
w?oski
?otewski
Unfortunately in Polish ?
comes after l
and before m
so the output should be:
:
:
kataloński
koreański
litewski
?otewski
macedoński
:
:
w?gierski
w?oski
How can I accomplish that? Is there an universal non-language-dependent method (say I now want to display this and sort in another language with another sorting rules).
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…