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
Java 两个字符串';(我认为)相同的s在检查是否相同时不会返回true_Java_String_Boolean_Equals - Fatal编程技术网

Java 两个字符串';(我认为)相同的s在检查是否相同时不会返回true

Java 两个字符串';(我认为)相同的s在检查是否相同时不会返回true,java,string,boolean,equals,Java,String,Boolean,Equals,我有两个字符串,一个由用户输入,一个是线程的名称。我输入的名称应该与线程相同。为了验证这一点,我有程序输出 System.out.println("DS:" + DeamonMain.threadNameFinal + "CN:" +getName()); 哪张照片 DS:Thread-66CN:Thread-66 现在,它们似乎是相同的字符串。然而,当我有它测试的有效性,这使用 boolean factChecker = DeamonMain.threadNameFinal == getN

我有两个字符串,一个由用户输入,一个是线程的名称。我输入的名称应该与线程相同。为了验证这一点,我有程序输出

System.out.println("DS:" + DeamonMain.threadNameFinal + "CN:" +getName());
哪张照片

DS:Thread-66CN:Thread-66
现在,它们似乎是相同的字符串。然而,当我有它测试的有效性,这使用

boolean factChecker = DeamonMain.threadNameFinal == getName();
System.out.println(factChecker);
它打印的是假的


为什么会这样?这与getName()有关吗?字符串有什么不同?为什么不同?

您需要使用
string.equals
来比较
string
相等,而不是
=
符号

例如:

boolean factChecker = DeamonMain.threadNameFinal.equals(getName());
=
运算符检查引用相等,而
equals
方法检查
字符串的值相等

另请参阅,以了解有关此问题的旧线程

一次又一次

Java中的字符串与
equals()
比较,而不是与
=
比较

将您的比较更改为:

boolean factChecker = DeamonMain.threadNameFinal.equals(getName());

您应该使用
.equals()
方法来比较字符串,而不是
=

boolean factChecker = DeamonMain.threadNameFinal.equals(getName());

原因是
.equals()
测试值相等(字符串具有相同的字符),而
=
测试引用相等。

您需要使用
equals()
方法而不是
=

boolean factChecker = DeamonMain.threadNameFinal.equals(getName());
像这样:

DeamonMain.threadNameFinal.equals(getName())
使用
equals()
进行字符串比较,而不是使用
=
运算符

  boolean factChecker = DeamonMain.threadNameFinal.equals(getName());
  System.out.println(factChecker);

equals()
方法用于内容比较,其中as
==
是参考比较。

这里问得最多的问题是什么?