Apache's StringUtils.isBlank(str) vs. Guava's Strings.isNullOrEmpty(str):你应该定期检查空格吗?

2022-09-02 01:39:44

使用有什么好处吗?

StringUtils.isBlank(str) 

来自 Apache commons-lang。

Strings.isNullOrEmpty(String string)

来自谷歌番石榴?

我想替换数百个它们在Java项目中使用的情况:

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

Guava的isNullOrEmpty似乎是我项目中上述用法的直接替代品。

但更多的人似乎根据我对S.O.问题的阅读使用Apache的isBlank方法。

唯一的区别似乎是,除了检查字符串是空还是空之外,还检查空格。StringUtils.isBlank(str)

通常,检查字符串的空格是一个好主意,还是会在您的代码中产生与Guava更简单的检查不同的结果?


答案 1

如果你想使用番石榴来复制isBlank行为,我会使用以下方法:

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


答案 2

当您必须接受来自人类的输入时,您应该原谅并从他们键入的任何文本中去除前导和尾随空格,如果它在特定应用程序中有意义。

也就是说,使用只是半烘烤。在进一步处理字符串之前,您还需要对它们进行处理。所以我建议在检查之前使用.isBlanktrims = trim(s);isNullOrEmpty