所以我一直试图弄清楚这一点,但无济于事。我必须将 JTextField 转换为 int 数组,同时有两个异常 NumberFormatException 和 ArrayIndexOutOfBoundsException。我能够找到一种方法来转换它,但是当我输入字母时它不会抛出 NumberFormatException 。
try {
int j=0;
String str = "" + numbersField.getText();
char digit[] = str.toCharArray();
for (int i=0; i<digit.length; i++) {
if (Character.isDigit(digit[i])) {
array[j]=Character.getNumericValue(digit[i]);
System.out.print(array[j] + " "); //Checking if it works
++j;
}
}
} catch (NumberFormatException e1) {
System.err.println("NumberFormatException: Array can only hold integers");
} catch (ArrayIndexOutOfBoundsException e1) {
System.err.println("ArrayIndexOutOfBoundsException: Array can only hold up to 10 elements");
}
就个人而言,我相信它不会抛出 NumberFormatException,因为它将 JTextField 转换为 char,但我可能完全错了。任何帮助表示赞赏。
编辑:我只包含了程序的一部分,因为在我看来它有点长。数组在此之前被初始化。这部分程序的最终目标是让用户输入最多 10 个数字,同时在输入字母或超过 10 个数字时抛出异常。这是我第一次使用异常,所以我对它还是比较陌生,所以请原谅我犯的任何错误。