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

标签 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"));

这返回了错误。我添加了 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/

相关文章:

java - 如何在资源包中处理角色星号

string - Bash:用空字符串替换子字符串

css - Google Chrome > 文本框 > 激活时出现黄色边框..?

java - 在java中显示图像

java - 无法访问Java中的类方法

java对象数组列表索引

javascript - 从字符串 Javascript 中删除字符范围

python - 根据字典替换字符串的快速方法

javascript - 通过 javascript 加载 html 时,文本框值不考虑空间

c# - Unity 中未设置输入 Axis 垂直 (C#)