Comparator na retezce s diakritikou

Podlesak Kamil Kamil.Podlesak na ips-ag.net
Čtvrtek Říjen 29 15:36:16 CET 2009


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: konference-bounces na java.cz [mailto:konference-bounces na java.cz]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.


------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://amaio.cz/pipermail/konference/attachments/20091029/59956317/attachment.htm>


Další informace o konferenci Konference