java中的字符串比较

use*_*608 3 java

可能重复:
比较可能为null的字符串的更好方法

我有一个if条件,如下所示:

if( !str1.equals(str2) )
{
    ---
    ---
    ---
}
Run Code Online (Sandbox Code Playgroud)

其中str1和str2是两个字符串对象.

有可能str1可能为null,下面的代码是否等同于上面的代码,以及处理null检查?

if( !(str1==null ? str2==null : str1.equals(str2)) )
{
    ---
    ---
    ---
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

Aff*_*ffe 5

假设您希望两个空值相等,那么肯定.根据您的方法,NullPointerException可能是正确的响应.你可以通过了解来节省很多打字

org.apache.commons.lang.StringUtils
Run Code Online (Sandbox Code Playgroud)

!StringUtils.equals(str1, str2); 以相同的方式为您处理空值.


Joe*_*oel 5

如果您使用的是Java 7:

java.util.Objects.equals(str1, str2);
Run Code Online (Sandbox Code Playgroud)