그래서 이것을 알아 내려고 노력했지만 아무 소용이 없습니다. NumberFormatException 및 ArrayIndexOutOfBoundsException의 두 가지 예외가있는 동안 JTextField를 int 배열로 변환해야합니다. 나는 그것을 변환 할 수있는 방법을 찾을 수 있었지만 글자를 입력 할 때 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");
}
는 개인적으로, 나는 그것이 숯불에 JTextField를 변환하기 때문에이 NumberFormatException이 던지는 아니에요 생각하지만, 나는 완전히 잘못 될 수 있습니다. 어떤 도움을 주셔서 감사합니다.
편집 : 내 의견으로는 다소 길기 때문에 프로그램의 일부만 포함 시켰습니다. 배열은 이것보다 먼저 초기화됩니다. 프로그램의이 부분의 궁극적 인 목표는 글자가 입력되거나 숫자가 10 개를 초과하는 경우 예외를 던지면서 사용자가 10 개의 숫자를 입력하도록하는 것입니다. 이것은 처음으로 예외를 사용하기 때문에 아직 비교적 익숙하지 않으므로 실수를 저를 용서해주십시오.
이 곳을'배열 []'초기화합니까? – alaster
얼마나 많은 자릿수를 읽고 싶습니까? 어쩌면 모든 텍스트를 하나의 큰 숫자로 읽은 다음 숫자 배열로 변환하는 것이 더 좋을까요? 모든 문자가 숫자인지 확인하기 때문에 결코 NumberFormatException을 가지지 않을 것입니다. – alaster
물론 NFE가 throw되지 않습니다. if 블록은 숫자가 아닌 문자를 분석하지 못하며 NumberFormatException을 구문 분석하지 않습니다. 던지는 방법. –