Me encontré con un código que tiene lo siguiente:
String foo = getvalue("foo");
if (StringUtils.isBlank(foo))
doStuff();
else
doOtherStuff();
Esto parece ser funcionalmente equivalente a lo siguiente:
String foo = getvalue("foo");
if (foo.isEmpty())
doStuff();
else
doOtherStuff();
Hay una diferencia entre los dos ( org.apache.commons.lang3.StringUtils.isBlank
yjava.lang.String.isEmpty
)?
java
string
string-utils
NSA
fuente
fuente
StringUtils.isEmpty(foo)
que le ayuda a evitar punteros nulosisBlank
, pero no busca caracteres de espacio en blanco.Respuestas:
StringUtils.isBlank()
comprueba que cada carácter de la cadena es un espacio en blanco (o que la cadena está vacía o que es nula). Esto es totalmente diferente a solo verificar si la cadena está vacía.De la documentación vinculada:
Para comparar StringUtils.isEmpty :
Advertencia: en java.lang.String .isBlank () y java.lang.String .isEmpty () funcionan igual, excepto que no regresan
true
pornull
.java.lang.String.isBlank()
java.lang.String.isEmpty()
fuente
La respuesta aceptada de @arshajii es totalmente correcta. Sin embargo, siendo más explícito al decir a continuación,
StringUtils.isBlank ()
StringUtils.isEmpty
fuente
StringUtils isEmpty = Cadena isEmpty comprueba + comprueba si es nulo.
StringUtils isBlank = StringUtils isEmpty comprueba + comprueba si el texto contiene solo caracteres de espacio en blanco.
Enlaces útiles para una mayor investigación:
fuente
StringUtils.isBlank()
también verificará nulo, mientras que esto:arrojará un
NullPointerException
if sifoo
es nulo.fuente
StringUtils.isBlank
también regresatrue
solo para espacios en blanco:fuente
StringUtils.isBlank(foo)
realizará una verificación nula por usted. Si realizafoo.isEmpty()
yfoo
es nulo, generará una NullPointerException.fuente
StringUtils.isBlank () devuelve verdadero para espacios en blanco (solo espacios en blanco) y también para String nulo. En realidad, recorta las secuencias de Char y luego realiza la comprobación.
StringUtils.isEmpty () devuelve verdadero cuando no hay secuencia en el parámetro String o cuando el parámetro String es nulo. La diferencia es que isEmpty () devuelve falso si el parámetro String contiene solo espacios en blanco. Considera los espacios en blanco como un estado de no estar vacío.
fuente
La única diferencia entre isBlank () y isEmpty () es:
fuente
Ambos tienen el mismo código, ¿cómo manejará isBlank los espacios en blanco? Probablemente se refería a isBlankString.
fuente
En lugar de usar lib de terceros, use Java 11 isBlank ()
fuente
Estoy respondiendo esto porque es el principal resultado en Google para el "Método String isBlank ()".
Si está utilizando Java 11 o superior, puede utilizar el método de clase de cadena isBlank () . Este método hace lo mismo que la clase Apache Commons StringUtils.
He escrito una pequeña publicación sobre ejemplos de este método, léalo aquí .
fuente