Input 如何处理numberformatexception?

Input 如何处理numberformatexception?,input,numberformatexception,Input,Numberformatexception,我正在做一个简单的猜测游戏,从用户那里获取输入。输入必须是小于6的数字才能猜测随机数。我已经处理过如果用户使用以下命令键入较大数字的情况: if(num > 5) { System.out.println("The number is too high. You spoiled one turn. Your saldo is now " + cash +"."); guessAgain(); } 但由于用户输入的不是数字,我想我可以用以下代码处理: if(num != 1

我正在做一个简单的猜测游戏,从用户那里获取输入。输入必须是小于6的数字才能猜测随机数。我已经处理过如果用户使用以下命令键入较大数字的情况:

if(num > 5) {
System.out.println("The number is too high. You spoiled one turn. Your saldo is now     "     + cash +".");
guessAgain();
}
但由于用户输入的不是数字,我想我可以用以下代码处理:

if(num != 1 && num != 2 && num != 3 && num != 4 && num != 5) {
System.out.println("Invalid input");
guessAgain();
}
但这不起作用,给了我输入字符串的numberformatexception。你能帮帮我吗?提前谢谢

这是前面的代码:

System.out.print("Guess : ");

 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String gok = null;

try {
     gok = br.readLine();
  } catch (IOException ioe) {
     System.out.println("IO error");
     System.exit(1);
  }




int num = Integer.parseInt(gok); 

如果使用try-catch,则可以使用异常来确定它是否不是已填充的数字。(在try中,您可以将转换为int)。大多数情况下,如果不是填写的数字,转换就会出现异常

编辑:

试试
{
Integer.valueOf([这里是您的输入];
}
捕获(数字格式)
{
System.out.println(“您的输入不是一个数字”);
}


将num转换为Integer并捕获numberFormatException,如下所示(我只需获取代码并添加捕获nfe):


请容忍我,我是一个初学者,你能告诉我代码应该是什么样子吗?谢谢你的回复。我在我的代码中添加了这个,我仍然得到了错误。我在它之前添加了代码,因为它可能会使它变得更清晰一些。
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String num = null;
        try
        {
            num = br.readLine();
            Integer.valueOf(num);
        } catch (IOException ioe)
        {
            System.out.println("IO error");
            System.exit(1);
        } catch (NumberFormatException nfe)
        {
            System.out.println("Invalid input");
        }
        System.out.println(num);