javasortinginternationalizationcollation

Collator doesn't sort right for given Locale


Here's the locale alphabet order: wikipedia
Here's my code:

public static void main(String[] args) {
    Locale loc = new Locale("sr","RS");

    Collator col = Collator.getInstance(loc);
    col.setStrength(Collator.SECONDARY);

    List<String> slova = new ArrayList<String>();

    slova.add("Austrija");
    slova.add("Slovačka");
    slova.add("Č");
    slova.add("Đ");
    slova.add("C");
    slova.add("Grčka");
    slova.add("Slovenija");
    slova.add("Španija");
    slova.add("Švajcarska");
    slova.add("Švedska");
    slova.add("Srbija");

    Collections.sort(slova,col);

    for(String s: slova)
        System.out.println(s);
}

And here's the output:

Austrija
C
Č
Grčka
Slovačka
Slovenija
Španija
Srbija
Švajcarska
Švedska
Đ

As you can see from the link above this is not the correct ordering.
What am I doing wrong?


Solution

  • Just found out it's a known issue caused by political and lingual circumstances. Thanks for help.