Los programadores suelen encontrar manipulación de cadenas y la comparación una de las operaciones menos eficientes para llevar a cabo en un programa. Las comparaciones de cadenas en particular, puede llegar a ser molesto para las cadenas grandes , o trabajar con cadenas de diferentes idiomas. Sin embargo , los programadores que utilizan la clase " clasificador " se pueden comparar cadenas en una variedad de idiomas. La clase Collator ofrece herramientas para comparar cadenas en una variedad de locales que tengan en cuenta las diferencias en las unidades sintácticas como la capitalización y los acentos . Alzadora y comparaciones de cadenas
En su forma más básica, la clase Collator compara dos cadenas y devuelve el resultado de esa comparación. Al igual que en las comparaciones de cadenas básicas con funciones de comparación se incluyen en la clase string, específicamente la función " compareTo " , las comparaciones Collator utilizan una definición por defecto del valor de las letras en la cadena para hacer comparaciones , devolviendo un resultado entero basado en la comparación . Así , por ejemplo, el siguiente código de Alzadora devuelve un resultado numérico :
Collator mina Collator.getInstance = (); if ( mine.compare ("AAA ", " aaa" ) > 0 ) { System.out.println ("AAA es mayor que aaa" ) ;}
Locale Especificidad
La clase Alzadora , a diferencia de las otras clases de comparación, permite a los programadores hacer comparaciones basadas en el idioma y localidad. Idiomas que utilizan caracteres de acento o diéresis dan valores diferentes basados en el uso de estos personajes, y ponen énfasis en diferentes objetos sintácticos tales como la capitalización . Por otra parte , el valor de estas diferencias están clasificados , por lo que algunas diferencias tienen más importancia en una palabra que otros. El siguiente ejemplo ilustra el uso de un objeto de clasificador de la localidad EE.UU. para comparar dos cadenas . Esto elimina la diferencia entre las versiones capitalizados y no capitalizados de caracteres :
Collator localc = "aaa ") == 0 ) { System.out.println ( " Las cadenas son equivalentes" ) ;}
Comparación Fuerza
" , la fuerza "dado a cada comparación depende de la configuración regional del idioma. Hay cuatro categorías de fuerza que utiliza la clase Collator para determinar cómo comparar cadenas: primaria, secundaria, terciaria y Idéntico . Así que en el caso de la configuración regional de idioma EE.UU. , los caracteres "a" y " b" comparten una diferencia primordial , ya que son diferentes personajes. Sin embargo , los caracteres " A" y "a" se consideran idénticos, porque el local no distingue entre ellos sólo por capitalización . Otro idioma que utiliza acentos también tendrá diferencias entre el mismo personaje en función de si lleva acento o no.
Colación Keys
El mejor método a utilizar cuando se ordenan listas de cadenas con Collators utiliza el objeto CollationKey . Este objeto tiene una cadena convertida a una forma poco . El objeto CollationKey puede entonces comparar dos cadenas de bits y devolver un resultado . Entonces , el programador puede recuperar la cadena original con el fin de mostrar los resultados . CollationKeys ofrecen una manera más eficiente para comparar cadenas , como la siguiente demostración ilustra :
Collator mi Collator.geInstance = (); CollationKey uno = new CollationKey ( my.getCollationKey ("One ")); CollationKey dos = new CollationKey ( my.getCollationKey ( " dos "));
if ( one.compareTo ( dos) > 0 ) { System.out.println ( one.getSourceString () + "es mayor que dos " ) ;}