Articles

Orden lexicográfico

Posted on

Tu navegador no soporta el lienzo HTML 5. Prueba con Chrome.

Para poner los elementos en orden, debe haber una forma de comparar dos elementos. Con las cadenas, el orden habitual es el Orden Lexicográfico. Este es el orden del diccionario, excepto que todas las letras mayúsculas preceden a todas las minúsculas. Este orden es el que utiliza el método compareTo() de la clase String.

Dos cadenas son lexicográficamente iguales si tienen la misma longitud y contienen los mismos caracteres en las mismas posiciones. En este caso, stringA.compareTo( stringB ) devuelve 0.

En caso contrario, stringA.compareTo( stringB ) devuelve un valor negativo si StringA va primero y un valor positivo si StringB va primero.

Ayuda a la memoria: piensa que las cadenas de un diccionario están ordenadas de menor a mayor. Entonces stringA - stringB produciría un valor negativo si stringA fuera antes que StringB.

Para determinar qué cadena viene primero, compara los caracteres correspondientes de las dos cadenas de izquierda a derecha. El primer carácter en el que difieren las dos cadenas determina qué cadena va primero. Los caracteres se comparan utilizando el conjunto de caracteres Unicode. Todas las letras mayúsculas van antes que las minúsculas. Si dos letras tienen el mismo caso, se utiliza el orden alfabético para compararlas.

Si dos cadenas contienen los mismos caracteres en las mismas posiciones, entonces la cadena más corta va primero.


.

Relación cadenaA.compareTo( stringB )
stringA Menos que stringB Entero negativo
cadenaA Igual cadenaB Cero cadenaA Mayor Que cadenaB Entero positivo


Expresión Evalúa a Explicación
«Cebra».compareTo(«hormiga») Entero negativo La ‘Z’ mayúscula va antes de la ‘a’ minúscula
«Manzana».compareTo(«manzana») Entero negativo La ‘A’ mayúscula va antes de la ‘a’ minúscula «manzana».compareTo(«orange») Entero negativo La ‘a’ va antes de la ‘o’
«maple».compareTo(«morning») Entero negativo La ‘a’ va antes de la ‘o’
«apple».compareTo(«apple») Cero misma longitud, mismos caracteres en las mismas posiciones
«orange».compareTo(«apple») Entero positivo «o» viene después de «a»
«applecart».compareTo(«apple») Entero positivo Cadena más larga «applecart» viene después de «apple»
«albatross».compareTo(«albany») Entero positivo ‘t’ viene después de ‘n’


Esto es ligeramente confuso. Observa que stringA.compareTo( stringB ) devuelve un entero negativo cuando stringA y stringB están en el orden correcto.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *