Так что я пытался понять это, но безрезультатно. Мне нужно преобразовать JTextField в массив int, имея два исключения: NumberFormatException и ArrayIndexOutOfBoundsException. Я смог найти способ его преобразования, но при вводе букв он не будет бросать исключение NumberFormatException.Преобразование JTextField в массив int с исключениями
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 в уголь, но я мог бы быть совершенно неправильно. Любая помощь приветствуется.
EDIT: Я включил только часть программы, так как это, по-моему, длительное время. Перед этим инициализируется массив. Конечная цель этой части программы состоит в том, чтобы пользователь вводил предел в 10 номеров, бросая исключение, если вводится буква или превышает 10 чисел. Это мой первый раз, когда я использовал исключения, поэтому я по-прежнему относительно новичок, поэтому, пожалуйста, извините меня за любые ошибки, которые я сделал.
где вы инициализировать 'массив []'? – alaster
Сколько цифр вы хотите прочитать? возможно, было бы лучше прочитать весь текст как одно большое число, а затем преобразовать в массив цифр? Я думаю, что у вас никогда не будет 'NumberFormatException', потому что вы проверяете, является ли каждый символ цифрой – alaster
Конечно, он не будет бросать NFE - ваш блок if не позволит ему анализировать символы, отличные от цифр, и вы никогда не будете разбираться с исключением NumberFormatException бросая метод. –