Tecnología

Inicio

El uso del clasificador en Java

Los programadores suelen encontrar la 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, pueden convertirse en un problema para las grandes cadenas, o la utilización de cadenas de diferentes idiomas. Sin embargo, los programadores que utilizan la clase "clasificador" pueden comparar cadenas en una variedad de idiomas. La clase Compaginadora ofrece herramientas para comparar cadenas en una variedad de configuraciones regionales que tengan en cuenta las diferencias en las unidades sintácticas tales como la capitalización y los acentos.

Collator y String comparaciones

En su forma más básica, la clase Compaginadora compara dos cadenas, y devuelve el resultado de esa comparación. Al igual que en las comparaciones básicas utilizando funciones de comparación de cadenas incluidas en la clase string, específicamente la función "compareTo", las comparaciones Collator utiliza una definición por defecto del valor de las cartas en la cadena para hacer comparaciones, devolver un resultado entero basado en la comparación. Así, por ejemplo, el siguiente código clasificador devuelve un resultado numérico:

mina de alzadora = Collator.getInstance ();
si (mine.compare ( "AAA", "AAA")> 0) {
System.out.println ( "AAA es mayor que la AAA");
}

Especificidad locale

La clase Compaginadora, a diferencia de las otras clases de comparación, permite a los programadores para hacer comparaciones sobre la base de la lengua y de la localidad. Idiomas que utilizan caracteres de acento o diéresis dan valores diferentes basados ​​en el uso de estos personajes, y lugar diferentes énfasis en artefactos sintácticos tales como la capitalización. Además, el valor de estas diferencias se clasifican, por lo que algunas diferencias tienen más importancia en una palabra que otros. El siguiente ejemplo ilustra el uso de un objeto Compaginadora la localidad de Estados Unidos para comparar dos cadenas. Esto elimina la diferencia entre las versiones en mayúsculas y no capitalizados de caracteres:

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

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

}

Fuerza Comparación

La "fuerza" dado a cada comparación depende de la configuración regional de la lengua. Hay cuatro categorías de fuerza utilizados por la clase Compaginadora para determinar cómo comparar cadenas: primario, secundario, terciario e idénticas. Así, en el caso de la configuración regional de EE.UU., los caracteres "a" y "b" comparten una diferencia fundamental, ya que son caracteres diferentes. Sin embargo, los caracteres "A" y "una" se consideran idénticos, debido a la configuración regional no distingue entre ellos sólo por capitalización. Otro lenguaje que utiliza acentos también tendrá diferencias entre el mismo carácter dependiendo de si se lleva un acento o no.

Claves de intercalación

El mejor método para utilizar al ordenar listas de cadenas con Alzadoras utiliza el objeto CollationKey. Este objeto contiene una cadena convertida en forma de bits. 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 ilustra la siguiente demostración:

Alzadora mi = Collator.geInstance ();
CollationKey una nueva CollationKey = (my.getCollationKey ( "One"));
CollationKey dos = new CollationKey (my.getCollationKey ( "Two"));

si (one.compareTo (dos)> 0) {
System.out.println (one.getSourceString () + "es superior a dos");
}