Programmører typisk finde strenghåndtering og sammenligning en af de mindre effektive operationer til at udføre i et program. String sammenligninger i særdeleshed kan blive besværlig for store strygere , eller arbejder med strygere fra forskellige sprog. Dog kan programmører ved hjælp af " Collator " class sammenligne strenge i en række forskellige sprog. Sammenbringeren klassen tilbyder værktøjer til at sammenligne strenge i en række forskellige steder , der tager hensyn til forskelle i sådanne syntaktiske enheder som kapitalisering og accenter. Collator og String Sammenligninger
I sin mest grundlæggende, Collator klassen sammenligner to strenge og returnerer resultatet af denne sammenligning. Svarende til grundlæggende snor sammenligninger med sammenligning funktioner, der indgår i strengen klassen , specifikt " compareTo "-funktionen , collator sammenligninger bruger en standard definition af værdien af bogstaver i strengen at foretage sammenligninger , returnere et heltal resultat baseret på sammenligningen . Så for eksempel , returnerer følgende Collator kode et numerisk resultat : Hej
Collator mine = Collator.getInstance (); if ( mine.compare ( "AAA" , "AAA" ) > 0) { System.out.println ( "AAA er større end AAA" );}
Locale Specificitet
Collator klasse, i modsætning til de øvrige sammenligning klasser giver programmører til at foretage sammenligninger baseret på sprog og lokalitet. Sprog, der bruger accent og umlaut giver forskellige værdier baseret på brugen af disse tegn , og placere forskellig vægt på syntaktiske artefakter såsom bogstaver. Desuden er værdien af disse forskelle rangeret, så nogle forskelle har mere betydning i et ord end andre. Det følgende eksempel illustrerer en Collator objekt ved hjælp af amerikanske lokalitet at sammenligne to strenge . Dette eliminerer forskellen mellem de aktiverede og ikke- kapitaliseret versioner af karakterer : Hej
Collator localC = "AAA" ) == 0 ) { System.out.println ( " Strings svarer "); }
Sammenligning Strength
" , styrke " gives til hver sammenligning afhænger locale af sproget. Der er fire kategorier af styrke , der anvendes af Collator klassen til at bestemme, hvordan man kan sammenligne strings : Primær , sekundære, tertiære og identiske . Tilfældet i USA sprogkonventionskode , tegnene "a" og "b" deler en primær forskel , idet de er forskellige karakterer . Men tegnene "A" og "a" betragtes som identiske, fordi locale ikke skelner mellem dem bare på grund af aktivering. Et andet sprog , der bruger accenter vil også have forskelle mellem samme karakter afhængigt af, om det bærer en accent eller ej.
Sortering Nøgler
Den bedste metode at bruge, når sortering lister over strengene med kollatorer bruger CollationKey objekt. Dette objekt har en streng omdannes til bit formular . Den CollationKey objekt kan derefter sammenligne to strenge af bits og returnere et resultat . Derefter kan programmøren hente den oprindelige streng for at vise resultater. CollationKeys tilbyde en mere effektiv måde at sammenligne strenge, som den følgende demonstration illustrerer : Hej
Collator min = Collator.geInstance (); CollationKey one = ny CollationKey ( my.getCollationKey ( " One ")); CollationKey to = new CollationKey ( my.getCollationKey ( " Two "));
if ( one.compareTo ( to) > 0) { System.out.println ( one.getSourceString () + " er større end Two " );}