Ambos métodos comparan cadenas de texto (String), pero con una diferencia importante:
equals() - Distingue mayúsculas y minúsculas
public class EjemploEquals {
public static void main(String[] args) {
String palabra1 = "HOLA";
String palabra2 = "hola";
if (palabra1.equals(palabra2)) {
System.out.println("Son iguales");
} else {
System.out.println("Son diferentes");
}
}
}
Resultado: Son diferentes ❌
Porque "HOLA" ≠ "hola" (las mayúsculas y minúsculas son diferentes)
equalsIgnoreCase() - Ignora mayúsculas y minúsculas
public class EjemploEqualsIgnoreCase {
public static void main(String[] args) {
String palabra1 = "HOLA";
String palabra2 = "hola";
if (palabra1.equalsIgnoreCase(palabra2)) {
System.out.println("Son iguales");
} else {
System.out.println("Son diferentes");
}
}
}
Resultado: Son iguales ✓
Porque ignora si las letras están en mayúscula o minúscula.
| Comparación | equals() | equalsIgnoreCase() |
|---|---|---|
| "HOLA" vs "HOLA" | ✓ true | ✓ true |
| "hola" vs "hola" | ✓ true | ✓ true |
| "HOLA" vs "hola" | ❌ false | ✓ true |
| "Hola" vs "hOlA" | ❌ false | ✓ true |
¿Cuándo usar cada uno?
- equals(): Cuando las mayúsculas/minúsculas son importantes (contraseñas, códigos exactos)
- equalsIgnoreCase(): Cuando no importan las mayúsculas (nombres de usuarios, búsquedas)