Friday, November 4, 2005, 6:51:21 PM, you wrote:
> Vazena konference, > mam odstranit diakriticka znamenka ze vsech pismen v retezci, ktera jsou > v latince. > Nejen ceska diakritika, ale vsechny mozne akcenty nad pismeny anglicke > abecedy. > Verze Javy je 1.5. > Nevite lepsi zpusob nez prevodni tabulku? strucne: nie. pozrite sa kritickym okom na umiestnenie standardnych a akcentovanych znakov v znakovej sade. ak v tom nejakym zazrakom uvidite nejaky naznak algoritmu, rozvinte tu myslienku a alogitmus implementujte :-) nepochybujem, ze dostanete nobelovu cenu za matematiku. :-)) DISCLAIMER: nie som matematik, takze za pripadne necakane osvietenie v tejto veci vopred dakujem :-) anyway, otazkou je, co je to "lepsi sposob" 1) ak to ma byt rychlost -> asi nic nebude rychlejsie nez prevodna tabulka 2) ak to ma byt velkost kodu -> dovolim si tvrdit, ze v tomto pripade akykolvek algoritmus bude vacsi nez ekvivalentna prevodna tabulka. 3) ak to ma byt citatelnost -> zlozitost potencialneho algoritmu urcite prekroci unosnu mieru. kym prevodnu tabulku pochopi kazdy magor, sofistikovany algoritmus len vyvoleni, za predpokladu, ze k nemu bude k dispozicii sprievodna rigorozna praca :-). zaverom asi tolko: - su ulohy, ktore sa algoritmizovat daju; ine sa nedaju alebo to nema zmysel - su ulohy, ktore sa algoritmizovat musia: napriklad robit String.toLowercase() pomocou prevodnej tabulky nad celou Unicode znakovou sadou by bol asi drsny overhead... - je mozne, ze urcite sub-ulohy v tomto zadani su algoritmizovatelne. vacsinou je vsak zakladom nejaka forma prevodnej tabulky. prevodnu tabulku relevantnu pre toto konkretne zadanie predpokladam mate (je to solidne a priamociare riesenie) dalej odporucam do pozornosti: http://www.unicode.org/Public/UNIDATA/ pripadne pre inspiraciu http://www.unicode.org/Public/UNIDATA/SpecialCasing.txt a suvisiacu triedu v JDK: java.lang.ConditionalSpecialCasing (package private, pozri zdrojaky) tak, diky za pozornost, dobre mi padlo pre zmenu pisat znovu nieco po slovensky :-)) -- Patrik Beno J2EE Software Architect ____________________________________ Cleverlance - The Clever Enterprise Solutions www.cleverlance.com European Business Center Dukelskych hrdinu 34 170 00 Praha 7 Czech Republic Tel.: +420 266 177 166 Mobile: +420 777 929 450 Fax: +420 266 177 155