Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我是否需要检查null和"&引用;在Java中比较字符串时?_Java_String - Fatal编程技术网

我是否需要检查null和"&引用;在Java中比较字符串时?

我是否需要检查null和"&引用;在Java中比较字符串时?,java,string,Java,String,假设我必须比较两个Strings: public String checkComaprision(String str) { if (!("Hello".equals(str))) { System.out.println("String didn't match to hello"); } if ("".equals(str) || null == str || (!str.equals("Hello"))) { System.out.

假设我必须比较两个
String
s:

public String checkComaprision(String str) {
    if (!("Hello".equals(str))) {
        System.out.println("String didn't match to hello");
    }

    if ("".equals(str) || null == str || (!str.equals("Hello"))) {
        System.out.println("String didn't match to hello");
    }
}
这里我使用了两种字符串比较方法。我在很多地方读过,在实际比较之前,我们将字符串与
null
进行比较。但是我认为第一种情况会正常工作,如果是这样,那么为什么我要检查
null
和blank


是否存在第一次比较失败的情况?哪一种方法更好?

没有办法
“Hello.equals(str))
会失败,字符串文本永远不能
为null
。与
”相同。等于(str)

方法
Objects.equals(Object,Object)
首先自动检查空值


要回答您的问题,使用
if(“Hello”.equals(str))
很好,但是如果您想用变量替换字符串文字
“Hello”
,您应该使用
Objects.equals(greeting,str)


检查空字符串是绝对不必要的。

在您的情况下,第一个比较总是有效的,因为我们确信“hello”永远不会为空。现在如果你想要一个这样的变量

私有字符串

然后,您想通过像您这样的函数与另一个进行比较,现在需要确保s不同于null

s=空的


如果没有,您可能会有一个NullPointerException

答案是:没有yoda符号用于删除
null
检查。如果您要编写str.equals(“Hello”),则必须首先检查str是否为null。但是“Hello”.equals(str)不需要事先检查。-我会用这个。没有额外的括号。我打算建议
StringUtils.equals(str1,str2)
,但我不知道
对象。equals(str1,str2)
,谢谢