L'utilizzo di Collator in Java

October 5

Programmatori tipicamente trovare manipolazione di stringa e confronto una delle operazioni meno efficienti di effettuare in un programma. confronti di stringhe, in particolare, può diventare fastidioso per stringhe di grandi dimensioni, o lavorare con le stringhe di diverse lingue. Tuttavia, i programmatori che utilizzano la classe "Collator" possono confrontare le stringhe in una varietà di lingue. La classe Collator offre strumenti per confrontare le stringhe in una varietà di locali che tengano conto delle differenze di tali unità sintattiche come capitalizzazione e accenti.

Collator e String Confronti

Nella sua forma più semplice, la classe Collator confronta due stringhe e restituisce il risultato di tale confronto. Simile a confronti tra stringhe di base utilizzando funzioni di confronto incluse nella classe string, in particolare la funzione "compareTo", i confronti Collator usare una definizione di default del valore delle lettere nella stringa di fare confronti, restituendo un risultato intero basato sul confronto. Così, per esempio, il codice seguente Collator restituisce un risultato numerico:

Collator miniera = Collator.getInstance ();
if (mine.compare ( "AAA", "AAA")> 0) {
System.out.println ( "AAA è maggiore di aaa");
}

Specificità locale

La classe Collator, a differenza delle altre classi di confronto, consente ai programmatori di fare confronti sulla base di lingua e località. Lingue che usano caratteri accentati o dieresi danno valori diversi a seconda dell'utilizzo di questi personaggi, e luogo diverso accento su manufatti sintattiche come capitalizzazione. Inoltre, il valore di queste differenze sono ordinati, in modo che alcune differenze hanno più importanza in una parola di altri. L'esempio seguente mostra un oggetto Collator utilizzando la località degli Stati Uniti per confrontare due stringhe. Questo elimina la differenza tra le versioni in maiuscolo e non capitalizzati di personaggi:

Collator localC = Collator.getInstance (Locale.US);
localC.setStrength (Collator.PRIMARY);
if (localC.compare ( "AAA", "AAA") == 0) {

System.out.println("Strings are equivalent");

}

Forza Confronto

La "forza" dato ad ogni confronto dipende dalla localizzazione del linguaggio. Ci sono quattro categorie di forza utilizzate dalla classe Collator per determinare come confrontare le stringhe: primario, secondario, terziario e identici. Quindi nel caso del linguaggio locale statunitense, i caratteri "a" e "b" condividono una differenza principale, in quanto sono diversi caratteri. Tuttavia, i caratteri "A" e "a" sono considerati identici, perché il locale non distingue tra loro solo a causa della capitalizzazione. Un'altra lingua che utilizza accenti avrà anche differenze tra lo stesso carattere seconda che porta un accento o meno.

regole di confronto Keys

Il metodo migliore da utilizzare durante l'ordinamento liste di stringhe con raccoglitrici utilizza l'oggetto CollationKey. Questo oggetto contiene una stringa convertito in forma di bit. L'oggetto CollationKey può quindi confrontare due stringhe di bit e di restituire un risultato. Poi, il programmatore può recuperare la stringa originale per visualizzare i risultati. CollationKeys offrono un modo più efficiente per confrontare le stringhe, come la seguente dimostrazione illustra:

Collator mia = Collator.geInstance ();
CollationKey uno = new CollationKey (my.getCollationKey ( "One"));
CollationKey due = new CollationKey (my.getCollationKey ( "Two"));

if (one.compareTo (due)> 0) {
System.out.println (one.getSourceString () + "è superiore a due");
}