Scanner console = new Scanner(System.in);
//where the menu would be
String menuInput;
//if what user inputs isn't "1", "2" or "3", an error message is shown
do {
menuInput = console.next();
if (!menuInput.equals("1") && !menuInput.equals("2") && !menuInput.equals("3")) {
System.out.println("Enter Valid Input");
}
} while (!menuInput.equals("1") && !menuInput.equals("2") && !menuInput.equals("3"));
我有一个包含3个选项的菜单,每个选项都通过输入“ 1”,“ 2”或3”来选择,但是当输入3个有效输入的任意组合时,它们之间要有空格,例如“ 1 2”,它将接受它作为有效输入。
有没有办法确保它一次只接受一个有效输入?
最佳答案
您的问题:console.next()
。这从输入中获取下一个标记-由空格分隔。因此,输入“ 1 2”不会返回“ 1 2”-它会返回“ 1”,因为它到达该空间并返回它之前的所有内容作为一个令牌。
如果要返回整行,请使用console.nextLine()
,它将一直行到换行符(回车键)。这将使您的代码按需运行。