2012-11-17 45 views
0

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

实施例:

在终端中的信息如下:

输入号码:

和用户输入的字符串,如

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

到目前为止,这个代码是:

System.out.println("Enter number:"); 
double number = scanner.nextDouble(); 
+0

你能后你有这么远的代码? –

+0

@VicoPelaez请接受一些答案。人们花费精力和时间解决问题。 – Juvanis

回答

1
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. 
} 
1

当你使用Scanner,你可以使用Scanner.hasDouble()。为了确保你得到一个有效的double,一些循环机制是必要的:

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