我有一个从扫描仪读取的输入,然后我将其与硬编码的字符串变量进行比较
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"));
仍然是假的。
有什么想法吗?感谢
答案 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"));