我希望用户只输入他的年龄。所以我做了这个程序:
Scanner keyb = new Scanner(System.in);
int age;
while(!keyb.hasNextInt())
{
keyb.next();
System.out.println("How old are you ?");
}
age = keyb.nextInt();
System.out.println("you are" + age + "years old");
我找到了如何通过将 while 循环与 keyb.hasNextInt() 结合使用来防止用户使用字符串,但是如何防止他使用空格或输入比他的年龄更多的输入?
例如我想防止这种输入“12 m”或“12 12”
另外,如何清除缓冲区中的所有现有数据?当我尝试使用这个时,我面临着一个无限循环:
while(keyb.hasNext())
keyb.next();
最佳答案
您想获得整条线。使用 nextLine
并检查数字,例如
String possibleAge = "";
do {
System.out.println("How old are you ?");
possibleAge = keyb.nextLine();
} while (!possibleAge.matches("\\d+"))
关于java - 防止用户在 Java 中输入空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51420538/