比较可能为空的字符串的更好方法

2022-09-03 08:20:40

我只是想知道是否有更好的方法来做到这一点。我觉得它可能是低效的。问题是由于数据库原因,我需要比较有时可以为空或不为空的字符串。

public static boolean compareStrings(String str1, String str2){

    if(str1 == null && str2 == null) return true;

    if(str1 != null && str2 != null){
        if(str1.equals(str2))
            return true;
    }

    return false;
}

答案 1

通常的成语是这样的:

return (str1 == null ? str2 == null : str1.equals(str2));

答案 2

你说这些可能来自数据库。在这一点上,老实说,与数据库查询的成本相比,围绕几个空洞测试的任何低效率都是微不足道的。我会把重点放在可读性上。

为此,我将开始使用Guava及其Objects类:

boolean equal = Objects.equal(a, b);

我希望基本上按照Taymon的代码实现它 - 但是把它放在个地方是很好的。

编辑:对于Java 7 +,你不需要番石榴。你可以只使用.java.util.Objects.equals(a, b)