Programadores tipicamente encontrar manipulação e comparação uma das operações mais eficientes para executar em um programa. Comparação de strings em particular, podem se tornar um incômodo para as grandes cadeias , ou trabalhar com cordas de diferentes idiomas. No entanto , os programadores que utilizam a classe " Organizadoras " pode comparar strings em uma variedade de idiomas. A classe Collator oferece ferramentas para comparar strings em uma variedade de locais que levem em conta as diferenças de tais unidades sintáticas como capitalização e acentos. Collator e String Comparações
No seu mais básico , a classe Collator compara duas strings e retorna o resultado da comparação . Similar às comparações básicas string usando funções de comparação incluídas na classe string , especificamente a função " compareTo " , comparações Collator usar uma definição padrão do valor das letras na string para fazer comparações , retornando um resultado inteiro com base na comparação . Assim, por exemplo , o seguinte código Collator retorna um resultado numérico :
meu Collator = Collator.getInstance (); if ( mine.compare ( "AAA ", " aaa" ) > 0) { System.out.println (" AAA é maior do que aaa" );}
Locale Especificidade
a classe Collator , ao contrário das outras classes de comparação, permite aos programadores fazer comparações com base no idioma e localidade. Idiomas que usam caracteres de acento ou tremas dar diferentes valores com base na utilização destes caracteres , e coloque diferente ênfase em artefatos sintáticos , como capitalização . Além disso , o valor de tais diferenças são classificados , de modo que algumas diferenças têm maior significado em uma palavra do que outros . O exemplo a seguir ilustra um objeto Collator usando a localização dos EUA para comparar duas strings. Isso elimina a diferença entre as versões capitalizados e não- capitalizados de personagens :
Collator localc = "aaa" ) == 0) {System.out.println (" Strings são equivalentes ");}
Comparação Força
A " , força "dada a cada comparação depende da localidade do idioma . Existem quatro categorias de força usados pela classe Collator para determinar como comparar strings : primária , secundária, terciária e idênticos. Assim, no caso de a localidade do idioma dos EUA, os caracteres " a" e " b" partes uma diferença fundamental, na medida em que são personagens diferentes. No entanto, os caracteres " A" e "a" são considerados idênticos , porque a localidade não faz distinção entre eles só por causa da capitalização . Outra linguagem que usa acentos também terá diferenças entre o mesmo personagem , dependendo se ele carrega um acento ou não .
Agrupamento Chaves
o melhor método a ser usado quando a classificação listas de strings com collators usa o objeto CollationKey . Este objeto possui uma string convertida em forma de bits. O objeto CollationKey pode comparar duas seqüências de bits e retornar um resultado . Em seguida , o programador pode recuperar a string original , a fim de exibir os resultados . CollationKeys oferecer uma maneira mais eficiente para comparar strings , como a demonstração seguinte ilustra :
Collator minha = Collator.geInstance (); CollationKey um = new CollationKey ( my.getCollationKey ("One" ) ); CollationKey dois = new CollationKey ( my.getCollationKey ( "Dois "));
if ( one.compareTo (dois) > 0) { System.out.println ( one.getSourceString () + "é maior de Dois " );}