Java 当我比较空字符串和空字符串时,我希望有一个返回true的函数

Java 当我比较空字符串和空字符串时,我希望有一个返回true的函数,java,Java,我需要比较空字符串和空字符串并返回true String a = ""; String b = null; // return TRUE if I compare "" and null return TRUE if I compare null and null return TRUE if I compare "" and "" return false if a or b has some value 您可以使用一个函数来避免重复: String a = ...; String b

我需要比较空字符串和空字符串并返回true

String a = "";
String b = null;

// return TRUE if I compare "" and null
return TRUE if I compare null and null
return TRUE if I compare "" and ""

return false if a or b has some value


您可以使用一个函数来避免重复:

String a = ...;
String b = ...;

Predicate<String> isNullOrEmpty = s -> s == null || s.equals("");
return isNullOrEmpty.test(a) && isNullOrEmpty.test(b);

您的实际用例不是相互比较字符串,而是检查两个字符串中是否有一个不是空的

以下代码段应完成此工作:

public boolean func(String a, String b) {
    if (a != null && !a.isEmpty()) {
        return false;
    }
    if (b != null && !b.isEmpty()) {
        return false;
    }
    return true;
}

这是一件轻而易举的事,你到底在坚持什么?和不应该还真的相比?对于null和null也是一样的。您的要求不清楚。@JonK我试过了。equals和==,在任何情况下都不能为真。请发布不起作用的代码。@davidxxx compared to应该为真,null compared to null应该为真,compared to null应该为真,compared to null也应该为真如果a或b有一些值呢?它返回false。您可以编写一个单元测试并检查所有这些
public boolean func(String a, String b) {
    if (a != null && !a.isEmpty()) {
        return false;
    }
    if (b != null && !b.isEmpty()) {
        return false;
    }
    return true;
}