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("@"));