验证用户是否输入了有效的数据类型



我想检查用户通过终端输入的数据是否是程序中所需的正确类型。如果不是,则代码应循环,以便在继续下一步之前再次请求数据。

例:

终端中的消息如下:

输入号码:

并且用户输入一个字符串,例如

是的

如何循环程序并再次询问数字,直到用户输入类型 double 的数字?

到目前为止,代码是:

System.out.println("Enter number:");
double number = scanner.nextDouble();
double number;
try
{
   number = scanner.nextDouble();
   number = parseDouble(inputString);
}
catch(NumberFormatException nfe)
{
   System.out.println("Please enter a valid double!");
   number = scanner.nextDouble();
   number = parseDouble(inputString);
   // if the input is not valid again, you need a loop, rethink.
}
当你使用

Scanner 时,你可以使用 Scanner.hasDouble() .为了确保您确实获得有效的双精度值,需要一些循环机制:

boolean numberFound = false;
while (!numberFound) {
   if (input.hasNextDouble()) {
    number = input.nextDouble();
    numberFound = true;
   } else {
    System.out.println("Invalid double " + input.next());
   }
}

最新更新