Očekávání je zcela správné, přesně takový komparátor skutečně existuje:
 
java.text.Collator#getInstance
 
Pozor na několik věcí:
 
 1) Stávající implementace v JDK neřadí správně podle české normy - ignoruje 
mezery. V mnoha běžných případech to nevadí, ale pokud potřebujete např. řadit 
adresy, tak to budete muset nějak ohackovat nebo najít lepší implementaci. 
(Uživatelé většinou nepochopí, proč se ulice Navarova zařadí mezi Na točně a Na 
výtoni.)
 
 2) Collator.compare je dost pomalá metoda. Pro řazení delších seznamů (rádově 
desetitisíce řetězců) už není možné použít Collator přímo jako Comparator a je 
nutné použít cestu přes getCollationKey().
 
Kamil Podlešák

-----Original Message-----
From: [email protected] [mailto:[email protected]]on Behalf 
Of danisevsky
Sent: Thursday, October 29, 2009 3:26 PM
To: Java
Subject: Comparator na retezce s diakritikou


Ahoj, resim trivialni problem, jak seradit podle abecedy list stringu. 
Respektive potrebuju komparator, ktery spravne porovna i znaky s diakritikou.  
...
 
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