DEV Community

Jordy Rodríguez
Jordy Rodríguez

Posted on

El método isBlank() en Java: ¿En qué se diferencia de isEmpty()?

IsBlank es tu arma secreta contra entradas que parecen vacías, pero no lo están. IsEmpty solo mira la longitud y se rompe con espacios, saltos o tabs.

En mi día a día, recibo payloads de clientes donde un campo llega como "" o como " " o con saltos de línea. Si me limito a isEmpty, esos casos pasan la validación y luego el backend falla al procesar datos invisibles. Con isBlank, una cadena que solo tiene whitespace ya no pasa como válida.

isBlank() verifica algo más profundo que la longitud: considera como vacío cualquier String que sea "" o que contenga únicamente caracteres de whitespace. isEmpty() solo devuelve true si la longitud es 0. Esto cambia la forma en que validamos inputs, logs y mensajes de error. Si quieres una validación de usuario robusta, usa isBlank para decidir “esto realmente está vacío” y reserva isEmpty para casos donde la ausencia de texto que no admite espacios sea lo que buscas.

La diferencia se nota sobre todo cuando hay datos que no ves a simple vista. Cualquier dato que no contribuya a la información real debe marcarse como inválido. Si en tu flujo te encuentras con nulos, recuerda que neither isBlank ni isEmpty protegen contra NPE por sí solos; añade un chequeo de null o usa una utilidad para normalizar antes de validar.

String a = "";
String b = "   ";
String c = "foo";

System.out.println(a.isEmpty()); // true
System.out.println(a.isBlank()); // true

System.out.println(b.isEmpty()); // false
System.out.println(b.isBlank()); // true

System.out.println(c.isBlank()); // false
Enter fullscreen mode Exit fullscreen mode

Hoy mismo: revisa una validación de input en tu proyecto y cambia isEmpty por isBlank cuando quieras considerar whitespace como vacío. Añade un chequeo de null (por ejemplo, si el flujo puede recibir null) o crea una pequeña utilidad: boolean isBlankOrNull(String s) { return s == null || s.isBlank(); }. Implementa esa comprobación en al menos dos puntos del flujo de entrada y ejecuta tus pruebas para ver el ahorro en errores de usuario.



📬 Conecta Conmigo

Top comments (0)