programmerere vanligvis finner streng manipulasjon og sammenligning en av de mindre effektive operasjoner for å utføre i et program . String sammenligninger spesielt kan bli plagsom for store strenger , eller arbeider med strenger fra forskjellige språk. Imidlertid kan programmerere ved hjelp av " Collator " class sammenligne strenger i en rekke språk . Den Collator klassen tilbyr verktøy for å sammenligne strenger i en rekke steder som tar hensyn til forskjellene i slike syntaktiske enheter som bokstaver og aksenter . Samler og String Sammenligninger
På sitt mest grunnleggende , sammenligner Collator klasse to strenger , og returnerer resultatet av sammenlikningen. I likhet med enkle streng sammenligninger med sammenligning funksjoner som inngår i strengen klassen, spesielt den " compareTo "-funksjonen, sammenligneren sammenligninger bruke en standard definisjon av verdien av bokstaver i strengen for å gjøre sammenligninger , returnerer et heltall resultat basert på sammenlikningen . Så, for eksempel , returnerer følgende Collator kode et numerisk resultat : en
Collator min = Collator.getInstance (); if ( mine.compare ( "AAA ", " aaa ") > 0 ) { System.out.println ( "AAA er større enn aaa "); }
Locale spesifisitet
Collator klasse , i motsetning til andre sammenligning klasser , lar programmerere å foreta sammenligninger basert på språk og lokalitet . Språk som bruker aksent tegn eller omlyder gi forskjellige verdier basert på bruken av disse tegnene , og legger ulik vekt på syntaktiske artefakter som kapitalisering . Videre er verdien av disse forskjellene rangert, slik at noen forskjeller har mer betydning i et ord enn andre. Følgende eksempel illustrerer en Collator objekt ved hjelp av den amerikanske lokalitet for å sammenligne to strenger . Dette eliminerer forskjellen mellom de balanseførte og ikke- balanseførte versjoner av tegn : en
Collator localc = " aaa ") == 0 ) { System.out.println ( " Strings er likeverdige "); }
Sammenligning Strength
" ; styrke " gitt til hver sammenligning er avhengig av locale av språket. Det er fire kategorier av styrken som brukes av Collator klassen for å finne ut hvordan å sammenligne strenger : Primær , sekundær, tertiær og Identisk . Så i tilfelle av det amerikanske språkinnstillingskoden , bokstavene "a" og "b" en andel primære forskjell , ved at de forskjellige figurer. Men tegnene "A" og "a" som identiske , fordi locale ikke skiller mellom dem bare på grunn av store bokstaver . Et annet språk som bruker aksenter vil også ha forskjeller mellom samme karakter avhengig av om det bærer en aksent eller ikke.
Sortering Keys
Den beste metoden å bruke når sortering lister over strengene med Collators bruker CollationKey objektet . Dette objektet har en streng konvertert til bitform . Den CollationKey objekt kan deretter sammenligne to strenger av biter og returnere et resultat . Deretter kan programmereren hente den opprinnelige strengen for å vise resultater . CollationKeys tilby en mer effektiv måte å sammenligne strenger , som den følgende demonstrasjonen illustrerer : en
Collator min = Collator.geInstance (); CollationKey en = 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 enn to " ); }