我有一个从扫描仪读取的输入,然后我将其与硬编码字符串变量进行比较
String MOVE = input.next(); // I type in "MOVE N"
MOVE = MOVE.trim();
System.out.print(MOVE.equals("MOVE N"));
这返回了错误。我添加了 trim()
String MOVE = input.next(); // I type in "MOVE N"
System.out.print(MOVE.equals("MOVE N"));
还是假的。
有什么想法吗?谢谢
最佳答案
您可能需要 nextLine()
。 next()
方法将只返回下一个 token,默认情况下它将是下一个单词(即它在空格处中断)。
下次,您应该添加对 System.out.println(MOVE);
的调用以帮助您对此进行诊断 - 这样您就可以看到结果只是 "MOVE"
而不是 "MOVE N"
。 (然后您会查阅 Scanner.next()
的文档 ...)
此外,我强烈建议您开始遵循 Java 变量命名约定 - 例如,move
而不是 MOVE
。
关于Java:来自 scanner.next() 和 .equals() 比较失败的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15158956/