Páginas

Uso del metodo equalsIgnoreCase()

Definición

equalsIgnoreCase() es un método de la clase String en Java que compara dos cadenas ignorando diferencias entre mayúsculas y minúsculas. Devuelve true si las cadenas tienen el mismo contenido al no distinguir entre 'A' y 'a'.

Sintaxis

boolean resultado = cadena1.equalsIgnoreCase(cadena2);
  • cadena1 es el String que llama al método.
  • cadena2 es el String con el que se compara.
  • Devuelve true o false.

Advertencia: si cadena1 es null, llamar cadena1.equalsIgnoreCase(...) lanza NullPointerException. Para evitarlo, llama al método sobre una constante o comprueba null antes:

if (cadena1 != null && cadena1.equalsIgnoreCase(cadena2)) { ... }

O

"valor".equalsIgnoreCase(posibleNull);

¿Para qué sirve?

Se usa cuando quieres comparar textos sin importar si están en mayúsculas o minúsculas: validaciones de entrada del usuario, comprobaciones de comandos, igualdad de nombres, opciones de menú, etc.

3 ejemplos

Ejemplo 1 — Comparación simple


String a = "Hola";
String b = "hola";

if (a.equalsIgnoreCase(b)) {
    System.out.println("Son iguales ignorando mayúsculas/minúsculas"); // se imprime
} else {
    System.out.println("Diferentes");
}
    

Ejemplo 2 — Entrada del usuario (Scanner)


import java.util.Scanner;

Scanner sc = new Scanner(System.in);
System.out.print("¿Deseas continuar? (si/no): ");
String respuesta = sc.nextLine();

if ("si".equalsIgnoreCase(respuesta)) {
    System.out.println("Continuando...");
} else {
    System.out.println("Saliendo...");
}
sc.close();


Aquí se usa "si".equalsIgnoreCase(respuesta) para evitar NullPointerException si respuesta fuera null.

Ejemplo 3 — Comparación segura con posible null y múltiples opciones


 String comando = obtenerComando(); // puede devolver null

if (comando != null) {
    if (comando.equalsIgnoreCase("iniciar")) {
        iniciarProceso();
    } else if (comando.equalsIgnoreCase("detener")) {
        detenerProceso();
    } else {
        System.out.println("Comando no reconocido");
    }
} else {
    System.out.println("No se recibió ningún comando");
}
   

Errores comunes

  • Usar == para comparar String en Java (compara referencias, no contenido). Usa equals() o equalsIgnoreCase().
  • Llamar equalsIgnoreCase sobre una variable que puede ser null sin verificarlo.
  • No normalizar cadenas con acentos o caracteres Unicode antes de comparar en aplicaciones multilenguaje.

Reglas rápidas

SituaciónRecomendación
Comparar texto sin distinguir mayúsc/minúsccadena1.equalsIgnoreCase(cadena2)
Evitar NullPointer"const".equalsIgnoreCase(posibleNull) o comprobar null antes
Ignorar espacios en extremoscadena.trim().equalsIgnoreCase(otra.trim())
Comparaciones en varios idiomasNormalizar Unicode con java.text.Normalizer antes de comparar

Conclusión

equalsIgnoreCase() es una herramienta práctica para comparar cadenas en Java cuando no interesa la diferencia entre mayúsculas y minúsculas. Aplicada correctamente (gestionando null, trim() y normalización Unicode) evita errores comunes y hace las validaciones de texto más robustas.