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)
Devuelvetrue
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.