utils util substringbefore stringutils isblank java string string-utils

java - substringbefore - StringUtils.isBlank() frente a String.isEmpty()



stringutils.isblank java (8)

La respuesta aceptada de @arshajii es totalmente correcta. Sin embargo, siendo más explícito diciendo lo siguiente,

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

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 y java.lang.String.isEmpty )?


StringUtils.isBlank () devuelve true para espacios en blanco (solo espacios en blanco) y para cadena nula también. En realidad, recorta las secuencias Char y luego realiza el control.

StringUtils.isEmpty () devuelve verdadero cuando no hay charsequence 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 whiltespaces. Considera los espacios en blanco como un estado de no estar vacío.


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 que sea nula). Esto es totalmente diferente a solo verificar si la cadena está vacía.

De la documentación vinculada:

Comprueba si una cadena es un espacio en blanco, vacío ("") o nulo.

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


StringUtils.isBlank() también comprobará nulo, mientras que esto:

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

lanzará una NullPointerException si foo es nulo.


StringUtils.isBlank(foo) realizará una comprobación nula por usted. Si realiza foo.isEmpty() y foo es nulo, generará una NullPointerException.


StringUtils.isBlank también devuelve true solo para el espacio en blanco:

isBlank (String str)

Comprueba si una cadena es un espacio en blanco, vacío ("") o nulo.



public static boolean isEmpty(String ptext) { return ptext == null || ptext.trim().length() == 0; } public static boolean isBlank(String ptext) { return ptext == null || ptext.trim().length() == 0; }

Ambos tienen el mismo código. ¿Cómo manejará isBlank los espacios en blanco? Probablemente se refería a que isBlankString tiene el código para manejar espacios en blanco.

public static boolean isBlankString( String pString ) { int strLength; if( pString == null || (strLength = pString.length()) == 0) return true; for(int i=0; i < strLength; i++) if(!Character.isWhitespace(pString.charAt(i))) return false; return false; }