【发布时间】:2015-02-13 01:16:34
【问题描述】:
我正在尝试为我的程序中的错误输入创建一些输入验证。
该程序应该将用户输入读取为双精度,但如果用户键入字母而不是数字,它必须显示输入不是数字的消息。
为此,我将 input.hasNextDouble 与 if 语句一起使用。 else 打印 x 不是数字的消息。但是,我的问题在于用户输入的第二个数字。假设用户输入“5 f”,hasNextDouble解释了double,然后执行if语句下的代码,但是由于“f”,输入仍然不正确。
简而言之,我需要一种方法将第一个输入 (5) 从缓冲区中删除,以便可以解释第二个输入。
感谢任何帮助!
这里是一些示例代码:
if ( keyboard.hasNextDouble() ) {
double i = keyboard.nextDouble();
double j = keyboard.nextDouble();
double answer = (j+i );
System.out.println(answer);
}
else {
String a = keyboard.next();
String b = keyboard.next();
System.out.println( a + "is not a number");
【问题讨论】:
-
提示:你只检查了一次
hasNextDouble(),但你调用了两次nextDouble()。
标签: java validation java.util.scanner