gpt4 book ai didi

java - 当两个字符串都可以为空时如何比较两个字符串?

转载 作者:IT老高 更新时间:2023-10-28 20:36:59 26 4
gpt4 key购买 nike

我知道调用 equals 方法优于使用 == 运算符(请参阅 this question )。如果两个字符串都为空或表示相同的字符串,我希望两个字符串比较相等。不幸的是,如果字符串为 nullequals 方法将抛出 NPE。我的代码目前是:

boolean equals(String s1, String s2) {
if (s1 == null && s2 == null) {
return true;
}
if (s1 == null || s2 == null) {
return false;
}
return s1.equals(s2);
}

这很不雅。执行此测试的正确方法是什么?

最佳答案

如果 Java 7+,请使用 Objects.equals() ;它的文档明确指出:

[...] if both arguments are null, true is returned and if exactly one argument is null, false is returned. Otherwise, equality is determined by using the equals method of the first argument.

这就是你想要的。

如果你不这样做,你的方法可以重写为:

return s1 == null ? s2 == null : s1.equals(s2);

这是可行的,因为 .equals() 合约保证对于任何对象 oo.equals(null) 始终为 false。

关于java - 当两个字符串都可以为空时如何比较两个字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30081520/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com