我的意图是从用户那里获取字符串输入,并且只接受整数值。也许我所拥有的不是最好的方法,如果是这种情况,请告诉我应该如何更改我的程序。假设用户输入了诸如 1 2 3 4 a 5
之类的值。我该如何防止这个小错误。
String[] intVal;
String inputValues;
int[] numbers = new int[20];
int count = 0;
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader input = new BufferedReader(reader);
System.out.print("Enter up to 20 integer values here: ");
inputValues = input.readLine();
intVal = inputValues.split("\\s");
for(int i = 0; i < intVal.length; i++){
numbers[i] = Integer.parseInt(intVal[i]);
count++;
}
最佳答案
如果输入不是数字, Integer.parseInt(String s)
会抛出 NumberFormatException
(请参阅 Integer.parseInt(String s)
上的 Javadoc )。
你可以做类似的事情
for (int i = 0; i < intVal.length; i++) {
try {
numbers[i] = Integer.parseInt(intVal[i]);
count++;
}
catch (NumberFormatException ex) {
System.out.println(i + " is not a number. Ignoring this value..."); // Or do something else
}
}
关于Java 禁止用户输入除整数以外的任何内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29742231/