使用
有什么好处StringUtils.isBlank(str)
来自Apache commons-lang。
vs
Strings.isNullOrEmpty(String string)
来自Google Guava的?
我希望在Java项目中使用后替换数百个案例:
if(str == null || str.isEmpty())
Guava的isNullOrEmpty似乎是我项目中上述用法的直接替代品。
但是根据我对S.O.的阅读,似乎有更多人使用Apache的isBlank方法。的问题。
除了检查字符串是空还是空之外,唯一的区别似乎是StringUtils.isBlank(str)
还会检查空格。
通常情况下检查字符串是否为空白或者是否会在代码中产生与Guava更简单的检查不同的结果?
答案 0 :(得分:12)
如果你想使用Guava复制isBlank行为,我会改用以下方法:
Strings.nullToEmpty(str).trim().isEmpty()
答案 1 :(得分:8)
当你必须接受来自人类的输入时,如果在特定应用中有意义的话,你应该宽恕并从他们输入的任何文本中删除前导和尾随空格。
也就是说,使用isBlank
只是半熟。在进一步处理字符串之前,您还需要trim
字符串。因此,我建议您在使用s = trim(s);
确认之前使用isNullOrEmpty
。
答案 2 :(得分:3)
isBlank
被高估了。直接从输入字段读取用户文本的UI代码可以一劳永逸地修剪空格,然后您可以不用担心它。
答案 3 :(得分:3)
StringUtils.isBlank(str)
与Strings.isNullOrEmpty(String string)
第一个代码示例只会检查字符串是否为空,它也会包含空格并返回
true
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
where
Strings.isNullOrEmpty(String string)
如果给定字符串为null或为空字符串,则返回true
答案 4 :(得分:-5)
Guava或多或少的目标是成为Apache Commons的“下一代”替代品。除了一致地使用isBlank()和isNullOrEmpty()之外,确实没有太大的实际区别。