Comparar String

Vamos a comparar cadenas de caracteres en Java. Para eso se me están ocurriendo tres métodos con los que poder hacerlo:

Equals()

Es el más común y el más cómodo.

Ejemplo: if (cadena1.equals(cadena2))

Siendo cadena1 y cadena2 dos String

CompareTo()

Se utiliza para la ordenación de cadenas. El método retorna 0 si ambas cadenas tienen el mismo contenido, negativo si el String es menor que el parámetro que le pasamos y positivo en el caso de ser mayor.

Ejemplo:

if (cadena1.compareTo(cadena2) == 0)

// cadena1 y cadena2 son iguales

else if (cadena1.compareTo(cadena2) < 0)

//cadena1 va antes que cadena2

else if (cadena1.compareTo(cadena2) > 0)

//cadena2 va después que cadena1

Esta comparación es según la tabla de códigos Ascii con lo que las mayúsculas van antes que las minúsculas y las últimas serán las letras acentuadas.

Collator

Dependiendo del idioma, si queremos un orden alfabético real, deberíamos usar la clase Collator, variando su comportamiento según los flags que nos ofrece Java:

Collator.PRIMARY no discrimina mayúsculas, minúsculas y acentuadas, es decir serían iguales la a, A, á o Á pero distinta por supuesto de la b.

Collator.SECUNDARY no discrimina entre mayúsculas y minúsculas, pero si son distintas si tienen acento.

Collator.TERCIARY considera distintas las tres letras (a, A o á).

Collator.IDENTICAL sólo las considera iguales si lo es su código por debajo. Por ejemplo, se puede codificar internamente una á con acento de varias formas. Con este nivel, se considerarían distintas, aunque ambas se vean como á con acento.

Ejemplo:

Collator comparador = Collator.getInstance();

comparador.setStrength(Collator.PRIMARY);

// Estas dos cadenas son iguales y retornaría true

System.out.println(comparador.compare("Hóla", "hola"));

comparador.setStrength(Collator.SECUNDARY);

// Ahora son distintas por el acento

System.out.println(comparador.compare("Hóla", "hola"));

// pero estas otras dos son iguales

System.out.println(comparador.compare("Hola", "hola"));

comparador.setStrength(Collator.TERCIARY);

// Ahora son distintas por la mayúscula

System.out.println(comparador.compare("Hola", "hola"));

// pero estas sí son iguales

System.out.println(comparador.compare("hola", "hola"));

¿Alguien sabría que estamos haciendo si comparamos dos String con “==”?, jejeje J

About these ads
Publicado en Java. 5 Comments »

5 comentarios to “Comparar String”

  1. links for 2010-07-12 « Java Asgaya Says:

    [...] Comparar String « Java Mania (tags: java programacion) [...]

  2. parricide Says:

    no dice como putas se aplica con ejemplos

  3. car Says:

    mierda ponga ejemplo…. para saber como se utilizar las sentenciass en Java


Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 490 seguidores

A %d blogueros les gusta esto: