Java 中的 Objects.equals() 与 StringUtils.isNotBlank()

Objects.equals() vs StringUtils.isNotBlank() in Java

提问人:Maryam Koulaei 提问时间:10/18/2023 最后编辑:DinuxMaryam Koulaei 更新时间:10/18/2023 访问量:82

问:

您能否解释一下以下代码的功能之间是否存在差异? 我知道 Objects.equals() 首先检查 NULL 值,然后比较两个字符串。

我有以下条件,我想知道哪一个更实用。

if (StringUtils.isNotBlank(str1) && str1.equals(str2)) {// do sth}

或者说:

if (Objects.equals(str1,str2)) {// do sth}

谢谢

java 等于 字符串比较

评论

4赞 Antoniossss 10/18/2023
字母会(可能?)通过,而第一个不会"".equals("")
3赞 Pino 10/18/2023
..如果 和 都是 null,则为 true(可能不是您想要的!str1str2Objects.equals()
1赞 Jens 10/18/2023
你用哪个?如何制作这里,你可以使用或简单StringUtilsStringUtils.isNotBlank(str1)str1 != nullStringUtils.equals(str1, str2)
2赞 user207421 10/18/2023
我不明白你怎么能开始询问比较两个对象的方法与另一个只看一个对象的方法之间的区别。
0赞 k314159 10/18/2023
@Jens好问题,我以为它是Apache Commons版本,因为它似乎是最受欢迎的版本,并添加了标签(过早),但当然还有其他版本,甚至可能是OP自己的项目中的一个类。

答:

3赞 k314159 10/18/2023 #1

如果字符串为 null、空或仅包含空格,则 Apache Commons 方法 StringUtils.isNotBlank 将返回 false。在以下情况下会有差异:

str1 第二极 结果(第 1 个代码/第 2 个代码)
假/真
"" "" 假/真
" " " " 假/真