我希望用户只输入他的年龄.所以我做了这个程序:
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");
Run Code Online (Sandbox Code Playgroud)
我发现如何通过使用带有keyb.hasNextInt()的while循环来阻止用户使用字符串,但是如何阻止他使用空格或输入比他的年龄更多的输入?
例如,我想阻止这种打字"12米"或"12 12"
另外,如何清除缓冲区中的所有现有数据?当我尝试使用它时,我面临无限循环:
while(keyb.hasNext())
keyb.next();
Run Code Online (Sandbox Code Playgroud)
你想得到整条线.使用nextLine并检查数字,例如
String possibleAge = "";
do {
System.out.println("How old are you ?");
possibleAge = keyb.nextLine();
} while (!possibleAge.matches("\\d+"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
163 次 |
| 最近记录: |