Programmers meestal vinden string manipulatie en vergelijking een van de minder efficiënte operaties uit te voeren in een programma . Tekenreeksvergelijkingen in het bijzonder kan lastig voor grote strijkers geworden , of het werken met strings uit verschillende talen . Echter , kunnen programmeurs met behulp van de " Collator " class strings te vergelijken in een verscheidenheid van talen . De Collator klasse biedt tools om strings te vergelijken in een verscheidenheid van locaties die rekening houden met de verschillen in bijvoorbeeld syntactische eenheden zoals hoofdletters en accenten . Collator en String Vergelijkingen Op zijn meest elementaire , de Collator klasse vergelijkt twee snaren , en geeft het resultaat van die vergelijking . Soortgelijke basis tekenreeksvergelijkingen vergelijking met de functies van de klasse String , specifiek de functie " compareTo " , Collator vergelijkingen gebruiken standaarddefinitie van de waarde van letters in de string vergelijkingen , terug een integer resultaat op basis van de vergelijking . Dus, bijvoorbeeld , de volgende Collator code retourneert een numeriek resultaat : Collator mine = Collator.getInstance ( ) if ( mine.compare ( " AAA " , " aaa " ) > 0 ) { System.out.println ( " AAA is Groter dan aaa " ) ; } Locale Specificiteit de Collator klasse , in tegenstelling tot de andere vergelijking klassen , kunnen programmeurs vergelijkingen maken op basis van taal en lokaliteit . Talen die accent tekens en accenten in gebruik geven verschillende waarden, gebaseerd op het gebruik van deze tekens , en vinden andere soorten syntactische artefacten zoals kapitalisatie . Bovendien is de waarde van deze verschillen zijn gerangschikt , zodat sommige verschillen meer betekenis in een woord dan anderen . Het volgende voorbeeld illustreert een Collator object met behulp van de Amerikaanse plaats om twee strings te vergelijken . Dit elimineert het verschil tussen de geactiveerde en niet - geactiveerde versies karakters Collator localC = " aaa " ) == 0 ) { System.out.println ( " Strings zijn gelijkwaardig " ) ; } Vergelijking Sterkte " ; kracht " gegeven aan elke vergelijking is afhankelijk van de locale van de taal . Er zijn vier categorieën van de kracht die door de Collator klasse om te bepalen hoe om strings te vergelijken : primair, secundair , tertiair en Identieke . Dus in het geval van de VS taalinstelling , de karakters "a" en " b " delen een primaire verschil , doordat zij verschillende karakters . Echter , de letters " A " en " a " worden beschouwd als identiek , omdat de locale maakt geen onderscheid tussen hen alleen maar omdat van kapitalisatie . Andere taal die accenten gebruikt zal ook verschillen tussen hetzelfde karakter afhankelijk van of het draagt een accent of niet . Collation Keys De beste methode om te gebruiken bij het sorteren lijsten van strings met Collators gebruikt de CollationKey object . Dit object bevat een string omgezet in bits vorm . De CollationKey object kan vervolgens vergelijken van twee strings van bits en een resultaat te retourneren . Vervolgens kan de programmeur de oorspronkelijke tekenreeks ophalen om de resultaten weer te geven . CollationKeys bieden een meer efficiënte manier om strings te vergelijken , aangezien de volgende demonstratie illustreert : Collator mijn = Collator.geInstance ( ) op ; CollationKey een = new CollationKey ( my.getCollationKey ( " One " ) ) ; CollationKey twee = new CollationKey ( my.getCollationKey ( " Two" ) ) ; if ( one.compareTo ( twee ) > 0 ) { System.out.println ( one.getSourceString ( ) + " groter dan twee " ) ; }
|