Java:来自scanner.next()和.equals()的字符串比较失败

时间:2013-03-01 13:29:25

标签: java string input comparison java.util.scanner

我有一个从扫描仪读取的输入,然后我将其与硬编码的字符串变量进行比较

String MOVE = input.next();  // I type in "MOVE N"
MOVE = MOVE.trim();
System.out.print(MOVE.equals("MOVE N"));

这返回了false。我添加了trim()

String MOVE = input.next(); // I type in "MOVE N"
System.out.print(MOVE.equals("MOVE N"));

仍然是假的。

有什么想法吗?感谢

2 个答案:

答案 0 :(得分:11)

你可能想要nextLine()next()方法只返回下一个标记,默认情况下它将是下一个单词(即它在空格处断开)。

下次,您应该添加对System.out.println(MOVE);的来电以帮助您诊断 - 这样您就可以看到结果只是"MOVE"而不是"MOVE N"。 (然后你会查阅Scanner.next()的文档...)

此外,我强烈建议您开始遵循变量的Java命名约定 - 例如move而不是MOVE

答案 1 :(得分:0)

String MOVE = input.nextLine ();  // I type in "MOVE N"
MOVE = MOVE.trim ();
System.out.print (MOVE.equals ("MOVE N"));