Comprobación de cadenas vacías o en blanco en Java

1. Introducción

En este tutorial, veremos algunas formas de verificar cadenas vacías o en blanco en Java. Tenemos algunos enfoques de idiomas nativos, así como un par de bibliotecas.

2. Vacío vs. En blanco

Por supuesto, es bastante común saber cuándo una cadena está vacía o en blanco, pero asegurémonos de estar en la misma página con nuestras definiciones.

Consideramos que una cadena se vacía si es o bien nulo o una cadena sin cualquier longitud. Si una cadena solo consta de espacios en blanco, entonces la llamamos en blanco .

Para Java, los espacios en blanco son caracteres como espacios, tabulaciones, etc. Eche un vistazo a Character.isWhitespace para ver ejemplos.

3. Cadenas vacías

3.1. Con Java 6 y superior

Si estamos al menos en Java 6, entonces la forma más sencilla de comprobar si hay una cadena vacía es String # isEmpty :

boolean isEmptyString(String string) { return string.isEmpty(); }

Para que también sea seguro para nulos, necesitamos agregar una verificación adicional:

boolean isEmptyString(String string)  string.isEmpty(); 

3.2. Con Java 5 y versiones anteriores

String # isEmpty se introdujo con Java 6. Para Java 5 y versiones anteriores , podemos usar String # length en su lugar.

boolean isEmptyString(String string)  return string == null 

De hecho, String # isEmpty es solo un atajo a String # length .

4. Cadenas en blanco

Tanto String # isEmpty como String # length se pueden usar para verificar cadenas vacías .

Si también queremos detectar cadenas en blanco , podemos lograrlo con la ayuda de String # trim . Será eliminar todos los espacios en blanco iniciales y finales antes de realizar el registro de entrada.

boolean isBlankString(String string)  string.trim().isEmpty(); 

Para ser precisos, String # trim eliminará todos los caracteres iniciales y finales con un código Unicode menor o igual que U + 0020.

Y también recuerde que String s son inmutables, por lo que llamar a trim no cambiará realmente la cadena subyacente.

5. Validación de Bean

Otra forma de comprobar si hay cadenas en blanco son las expresiones regulares. Esto es útil, por ejemplo, con Java Bean Validation:

@Pattern(regexp = "\\A(?!\\s*\\Z).+") String someString;

La expresión regular dada garantiza que las cadenas vacías o en blanco no se validen.

6. Con Apache Commons

Si está bien agregar dependencias, podemos usar Apache Commons Lang. Esto tiene una gran cantidad de ayudantes para Java.

Si usamos Maven, necesitamos agregar la dependencia commons-lang3 a nuestro pom:

 org.apache.commons commons-lang3 

Entre otras cosas, esto nos da StringUtils .

Esta clase viene con métodos como isEmpty , isBlank y así sucesivamente:

StringUtils.isBlank(string)

Esta llamada hace lo mismo que nuestro propio método isBlankString . Es seguro para nulos y también busca espacios en blanco.

7. Con Guayaba

Otra biblioteca conocida que trae ciertas utilidades relacionadas con cadenas es Guava de Google. A partir de la versión 23.1, hay dos versiones de Guava: android y jre . La versión de Android se dirige a Android y Java 7, mientras que la versión de JRE se aplica a Java 8.

Si no estamos apuntando a Android, podemos simplemente agregar el sabor JRE a nuestro pom:

 com.google.guava guava 28.0-jre 

La clase Guavas Strings viene con un método Strings.isNullOrEmpty :

Strings.isNullOrEmpty(string)

Verifica si una cadena dada es nula o vacía, pero no verificará cadenas de solo espacios en blanco .

8. Conclusión

Hay varias formas de comprobar si una cadena está vacía o no. A menudo, también queremos comprobar si una cadena está en blanco, lo que significa que solo consta de espacios en blanco.

La forma más conveniente es utilizar Apache Commons Lang, que proporciona ayudantes como StringUtils.isBlank . Si queremos ceñirnos a Java simple, podemos usar una combinación de String # trim con String # isEmpty o String # length . Para la validación de Bean, se pueden usar expresiones regulares en su lugar.

Asegúrese de consultar todas estas muestras en GitHub.