StringUtils.isBlank() frente a String.isEmpty()

Resuelto NSA asked hace 10 años • 14 respuestas

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 alguna diferencia entre los dos ( org.apache.commons.lang3.StringUtils.isBlanky java.lang.String.isEmpty)?

NSA avatar May 02 '14 07:05 NSA
Aceptado

StringUtils.isBlank()comprueba que cada carácter de la cadena sea un carácter de espacio en blanco (o que la cadena esté vacía o sea nula). Esto es totalmente diferente a simplemente verificar si la cadena está vacía.

De la documentación vinculada:

Comprueba si una cadena tiene espacios en blanco, está vacía ("") o es nula.

 StringUtils.isBlank(null)      = true
 StringUtils.isBlank("")        = true  
 StringUtils.isBlank(" ")       = true  
 StringUtils.isBlank("bob")     = false  
 StringUtils.isBlank("  bob  ") = false

A modo de comparación StringUtils.isEmpty :

 StringUtils.isEmpty(null)      = true
 StringUtils.isEmpty("")        = true  
 StringUtils.isEmpty(" ")       = false  
 StringUtils.isEmpty("bob")     = false  
 StringUtils.isEmpty("  bob  ") = false

Advertencia: en java.lang.String .isBlank() y java.lang.String .isEmpty() funcionan igual excepto que no regresan truepara null.

java.lang.String.isBlank()(desde Java 11)

java.lang.String.isEmpty()

arshajii avatar May 02 '2014 00:05 arshajii

La respuesta aceptada de @arshajii es totalmente correcta. Sin embargo, siendo más explícito diciendo a continuación,

StringUtils.isBlank()

 StringUtils.isBlank(null)      = true
 StringUtils.isBlank("")        = true  
 StringUtils.isBlank(" ")       = true  
 StringUtils.isBlank("bob")     = false  
 StringUtils.isBlank("  bob  ") = false

StringUtils.isEmpty

 StringUtils.isEmpty(null)      = true
 StringUtils.isEmpty("")        = true  
 StringUtils.isEmpty(" ")       = false  
 StringUtils.isEmpty("bob")     = false  
 StringUtils.isEmpty("  bob  ") = false
nilesh avatar Mar 31 '2017 21:03 nilesh

StringUtils isEmpty = String isEmpty comprueba + comprueba si hay nulos.

StringUtils isBlank = StringUtils isEmpty comprueba + comprueba si el texto contiene sólo espacios en blanco.

Enlaces útiles para una mayor investigación:

  • StringUtils es documentación en blanco
  • StringUtils está documentación vacía
  • La cadena está vacía documentación
yallam avatar Sep 26 '2014 13:09 yallam

StringUtils.isBlank()También comprobará si hay nulo, mientras que esto:

String foo = getvalue("foo");
if (foo.isEmpty())

arrojará un NullPointerExceptionsi fooes nulo.

chut avatar May 02 '2014 00:05 chut