当前位置: 首页 > 知识库问答 >
问题:

如何检查如果两个字符串是平等的Java时,其中一个字符串可以是空?[重复]

漆雕修能
2023-03-14

我有两条线。。。

String s1 = /* any string, could be null */;
String s2 = /* any string, could be null */;

我需要知道他们是否平等。

我不能做s1.equals(s2),因为如果s1==null,则为NullPointer。

这是检查他们是否平等的最好方法吗?

public boolean stringsAreEqual(String s1, String s2) {
    boolean bEqual = false;
    if ((s1 == null) && (s2 == null)) {
        bEqual = true;
    } else if ((s1 != null) && s1.equals(s2)) {
        bEqual = true;
    } else if ((s2 != null) && s2.equals(s1)) {
        bEqual = true;
    }  
    return bEqual;
}

共有3个答案

柳昊焱
2023-03-14

a==null?B==null:A.等于(B)

方兴旺
2023-03-14

你可以这样比较字符串。这就是Java内部代码所使用的。

public boolean stringsAreEqual(String s1, String s2) {
    return (s1 == null ? s2 == null : s1.equals(s2));
}
羊舌兴文
2023-03-14

您不需要为此创建新方法。你可以使用java。util。对象#equals(对象a、对象b)来自Java标准库。以下是JDK上的定义。

public static boolean equals(Object a, Object b) {
    return (a == b) || (a != null && a.equals(b));
}
 类似资料:
  • 例如: 字符串1=helloworld字符串2=asdfuvjerhelloworld 这应该是真的。 另一个例子:字符串1=helloworld字符串2=lshewodxzr 这也应该是真的。 所以我正在研究如何创建一个方法,它将返回一个布尔值,检查第二个字符串是否包含第一个字符串中的字母。在第二个示例中,string2只有一次字母l,尽管字母l在string1中出现了三次,但仍然返回true。

  • 本文向大家介绍C ++中的元字符串(检查一个字符串交换后两个字符串是否可以相同),包括了C ++中的元字符串(检查一个字符串交换后两个字符串是否可以相同)的使用技巧和注意事项,需要的朋友参考一下 在本节中,我们将看到如何检查两个字符串是否为元字符串。元字符串是非常相似的那些字符串。如果我们在一个字符串中交换两个元素,那么它将与另一个字符串匹配。假设两个字符串是“ HELLO”和“ OELLH”,则

  • 问题内容: if var is ‘stringone’ or ‘stringtwo’: dosomething() 这行不通!我有一个变量,当它是两个值中的一个时,我需要它执行某些操作,但它不会输入if语句。在Java中工作。如何用Python编写? 问题答案: 这不能满足您的期望: 它与: 始终为真,因为它被认为是“真”值。 有两种选择: 或者您可以编写单独的相等性测试, 不要使用,因为比较对象

  • 我想检查以开头的字符串是否正确。没有循环我怎么做?提前谢谢。

  • 我有两个字符串,string1和string2。我想检查string1是否可以由string2中的字符组成(没有重复字符)。例如,如果string1是“工具”,string2是“环礁”,函数将返回false。如果string1是“触摸”,string2是“chetoudce”,它将返回true。 在Javascript中最有效的方法是什么?我在考虑使用indexOf,然后从string2中删除用来

  • 我已经知道如何检查一个字符串是否存在于另一个字符串中。但是我需要知道如何检查一个字符串是否存在于另一个字符串的开头。例如:String str1="first not";String str2="not last";我需要一个条件来检查字符串的开头是否存在"not",这应该只满足str2的情况,而不是两者。