Pouzij java.text.Collator


danisevsky wrote:
Ahoj, resim trivialni problem, jak seradit podle abecedy list stringu. Respektive potrebuju komparator, ktery spravne porovna i znaky s diakritikou. Toto je mala ukazka problemu:

    public static void main(String[] args) {
        String[] s = { "z", "a", "ř", "c", "č" };
        List<String> list = Arrays.asList(s);
        printList(list);
        Collections.sort(list, new Comparator<String>() {
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
        });
        printList(list);
    }

    private static void printList(List<String> l) {
        for (String string : l) {
            System.out.print(string + " ");
        }
        System.out.println();
    }

vysledek:
z a ř c č
a c z č ř

Cekal bych, ze bude existovat neco jako SringsComparator, kterymu predam cz locale a on si s tim poradi, ale nic takoveho sem bohuzel nenasel.
Predem diky za pripadnou odpoved.

Odpovedet emailem