我的意图是从用户那里获取字符串输入,并且只接受整数值。也许我所拥有的不是最好的方法,如果是这种情况,请告诉我应该如何更改我的程序。假设用户输入了诸如 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/

10-10 06:23