如何使java表达式只识别数字

时间:2013-09-27 19:55:16

标签: java

我正在制作一个程序,无法弄清楚如何让我的扫描仪输入只能识别数字。这就是我的意思。

System.out.print(" What is the distance in feet:" ); 
//ask the user to input variables 

Distance = keyboard.nextDouble(); 

我可以在距离输入后放置什么,以便允许我输出某种消息,告诉用户他们没有输入数字。

我想可能从

之类的东西开始
if (Distance != double) 
    System.out.print ("You did not enter a valid character, please enter again." 

但这不起作用。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您需要使用Scanner#hasNextDouble()方法来测试是否有双值读取:

// While the next input is not a double value, repeat
while (!keyboard.hasNextDouble()) {
    System.out.println("Please enter a valid numeric value");
    keyboard.nextLine();  // Move Scanner past the current line
}

double distance = keyboard.nextDouble();

此外,如果用户继续输入错误的输入,循环可能会无限。您可以给他一些最大数量的尝试以使其正确,然后抛出一些异常,或显示一些消息,然后执行System.exit(1);

答案 1 :(得分:0)

您可以使用try catch块进行此操作,例如:

System.out.print(" What is the distance in feet:" ); 
//ask the user to input variables 

Distance = keyboard.nextDouble(); 

try
{
  //you next code, considering a valid number 
}catch (NumberFormatException ex)
{
  //here u show a message ou another thing
}

希望它有所帮助^^