Programmerare normalt hittar string manipulation och jämförelser är en av de mindre effektiv verksamhet för att utföra i ett program . String jämförelser i synnerhet kan bli besvärande för stora strängar , eller arbetar med strängar från olika språk . Däremot kan programmerare som använder " Collator " class jämföra strängar i en mängd olika språk . Den Collator klassen erbjuder verktyg för att jämföra strängar i en mängd olika platser som tar hänsyn till skillnaderna i sådana syntaktiska enheter som kapitalisering och accenter . Collator och Jämförelser String
I sin mest grundläggande , jämför Collator klass två strängar och returnerar resultatet av denna jämförelse . Liknar grundläggande strängjämförelser använder jämförelse funktioner som ingår i klassen String , specifikt " compareTo " -funktion , sorterare jämförelser använder en standard definition av värdet av bokstäverna i strängen för att göra jämförelser , returnera ett heltal resultatet baserat på jämförelsen . Så , till exempel , returnerar följande Collator koden ett numeriskt resultat :
Collator mine = Collator.getInstance ( ) , om ( mine.compare ( " AAA " , " aaa " ) > 0 ) { System.out.println ( " AAA är större än aaa " ) ;}
Locale Specificity
Collator klassen , till skillnad från de andra jämförelse klasserna , låter programmerare att göra jämförelser baserade på språk och tätort . Språk som använder accent eller omljud ger olika värden baserat på användningen av dessa tecken , och placera olika vikt vid syntaktiska artefakter såsom kapitalisering . Dessutom är värdet på dessa skillnader rangordnas , så att vissa skillnader har mer betydelse i ett ord än andra . Följande exempel illustrerar en Collator objekt med US ort för att jämföra två strängar. Detta eliminerar skillnaden mellan de aktiverade och ej aktiverade versioner av tecken :
Collator localC = " aaa " ) == 0 ) { System.out.println ( " Strings är likvärdiga " ) ;} Addera ditt Jämförelse Styrka
" , styrka " ges till varje jämförelse beror på lokalen av språket . Det finns fyra kategorier av styrka används av Collator klassen för att avgöra hur man kan jämföra strängar : Primär , sekundära, tertiära och identiska . Så i fallet med den amerikanska språkanpassning, tecknen "a" och "b" delar en primär skillnad, genom att de är olika tecken. Men tecknen " A " och " a " vara identiska , eftersom lokalen inte skiljer mellan dem bara på grund av aktivering . Ett annat språk som använder accenter kommer också att ha skillnader mellan samma karaktär beroende på om det bär en accent eller inte . Addera Sortering Nycklar
Den bästa metoden att använda vid sortering förteckningar över strängarna med Collators använder CollationKey objektet . Det här objektet har en sträng omvandlas till bit formulär . Den CollationKey objektet kan sedan jämföra två strängar av bitar och returnera ett resultat . Sedan kan programmeraren hämta den ursprungliga strängen för att visa resultaten . CollationKeys erbjuda ett mer effektivt sätt att jämföra strängar , som följande demonstration visar :
Collator min = Collator.geInstance ( ) ; CollationKey en = ny CollationKey ( my.getCollationKey ( " One " ) ) ; CollationKey två = ny CollationKey ( my.getCollationKey ( " Two " ) ) ;
om ( one.compareTo ( två ) > 0 ) { System.out.println ( one.getSourceString ( ) + " är större än två " ) ;} Addera