gpt4 book ai didi

java - 使用扫描仪验证多个输入

转载 作者:行者123 更新时间:2023-12-01 11:55:24 25 4
gpt4 key购买 nike

我正在尝试为程序中的错误输入创建一些输入验证。

程序应该将用户输入读取为 double 值,但如果用户键入字母而不是数字,则必须显示一条消息,表明输入不是数字。

为此,我将 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");

最佳答案

double i,j, answer;
try{
i = keyboard.nextDouble();
j = keyboard.nextDouble();
answer = i+j;
} catch( InputMismatchException e ) {
// One of the inputs was not a double
System.out.println("Incorrect format");
}

否则,如果你绝对需要打印出哪个是不正确的,我只会执行 if-then 你有两次。

double i=null, j=null, answer;
// get input for i
if ( keyboard.hasNextDouble() ) {
i = keyboard.nextDouble();
}else{
System.out.println( keyboard.next() + " is not a double");
}
// get input for j
if ( keyboard.hasNextDouble() ) {
j = keyboard.nextDouble();
}else{
System.out.println( keyboard.next() + " is not a double");
}
// if both i and j received inputs
if( i != null && j != null )
answer = i + j;
else
System.out.println("Malformed input");

关于java - 使用扫描仪验证多个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28490991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com