Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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 扫描仪输入+;do while循环的行为非常奇怪_Java_Input_Java.util.scanner - Fatal编程技术网

Java 扫描仪输入+;do while循环的行为非常奇怪

Java 扫描仪输入+;do while循环的行为非常奇怪,java,input,java.util.scanner,Java,Input,Java.util.scanner,我有这个密码: Scanner inputScanner = new Scanner(System.in); String word; do { word = inputScanner.next(); System.out.println(word + ": " + dict.contains(word)); } while (word != "@"); 这很简单,但在收到用户的@输入后,循环不会终止。我见过其他人抱怨扫描器容易出错,可能会产生意想不到的结果,但这并不能解释为什

我有这个密码:

Scanner inputScanner = new Scanner(System.in);
String word;
do
{
    word = inputScanner.next();
    System.out.println(word + ": " + dict.contains(word));
}
while (word != "@");
这很简单,但在收到用户的
@
输入后,循环不会终止。我见过其他人抱怨
扫描器
容易出错,可能会产生意想不到的结果,但这并不能解释为什么
dict.contains(word)
功能完美,而
while(word!=“@”)
条件没有起作用


给出了什么?

您正在使用
==
来比较字符串;改用


您需要使用.equals()方法,而不是==操作。“==”操作用于比较基本体,如布尔、int、long、ect和引用


字符串是一个对象,因此Java假定您希望比较引用值,而不是字符串中包含的值。还请记住,您也不能将Long、Integer、Double ect与==运算符进行比较。

Wow,我觉得自己很笨吗。我只是假设字符串对象像处理
String.equals()
那样处理
=
操作符。非常感谢!
...
while (!word.equals("@"));