utils util substringbefore stringutils org isnotblank isblank commons java string apache-commons guava

substringbefore - string utilities java



StringUtils.isBlank(str) de Apache contra Strings.isNullOrEmpty(str) de Guava: ¿Debería verificar de forma rutinaria los espacios en blanco? (5)

¿Hay alguna ventaja en el uso

StringUtils.isBlank(str)

de Apache commons-lang.

vs

Strings.isNullOrEmpty(String string)

de Google Guava?

Quiero reemplazar cientos de casos de uso posterior en un proyecto Java:

if(str == null || str.isEmpty())

El isNullOrEmpty de Guava parece ser un reemplazo directo del uso anterior en mi proyecto.

Pero más personas parecen usar el método isBlank de Apache basado en mi lectura de las preguntas de SO.

La única diferencia parece ser que StringUtils.isBlank(str) también busca espacios en blanco, además de verificar si la cadena es nula o está vacía.

Normalmente, ¿es una buena idea revisar una Cadena para el espacio en blanco o podría producir un resultado diferente en su código que el control más simple de Guava?


Cuando tenga que aceptar comentarios de seres humanos, debe perdonar y eliminar los espacios en blanco iniciales y finales del texto que escriba, si tiene sentido en la aplicación en particular.

Dicho esto, el uso de isBlank solo está a la mitad. También es necesario trim las cadenas antes de seguir procesándolas. Así que sugiero usar s = trim(s); antes de consultar con isNullOrEmpty .


La guayaba está más o menos dirigida a ser un reemplazo de Apache Commons de "próxima generación". Realmente no hay mucha diferencia práctica entre usar isBlank () vs isNullOrEmpty () más allá de usar uno u otro consistentemente.


Si desea usar Guava para replicar el comportamiento de isBlank, usaría el siguiente método en su lugar:

Strings.nullToEmpty(str).trim().isEmpty()


StringUtils.isBlank(str) es muy diferente a Strings.isNullOrEmpty(String string)

el primer ejemplo de código solo verificará si la cadena está vacía o no, también incluirá espacios en blanco y devolverá true

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

where as Strings.isNullOrEmpty(String string) Devuelve true si la cadena dada es nula o es la cadena vacía


isBlank está increíblemente sobrevalorado. El código de IU que lee el texto del usuario directamente de los campos de entrada puede recortar el espacio en blanco de una vez por todas, y luego puede dejar de preocuparse por ello.