Input 如何处理numberformatexception?
我正在做一个简单的猜测游戏,从用户那里获取输入。输入必须是小于6的数字才能猜测随机数。我已经处理过如果用户使用以下命令键入较大数字的情况: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
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);