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