1

Вот небольшой фрагмент моего кода, который пытается преобразовать строку длиной 6 в массив int.Преобразование строки в массив int, java.lang.ArrayIndexOutOfBoundsException: 6

int[] intArray=new int[6]; 
int i = 0; 
String s = jTextField2.getText(); 
int strLength = s.length(); 
if(strLength != 6) { 
    jTextArea1.setText("Not a valid length"); 
} else { 
    for(i=0;i<6;i++) { 
    intArray[i] = Integer.parseInt(String.valueOf(s.charAt(i))); 
    } 
} 

Это связано с исключением из-за пределов, и я не могу понять, почему.

Спасибо за любую помощь.

+0

Какова ценность s? – kosa

+0

Длина s равна 6. eg: 123456 – Maggy

+0

Похоже, ваш код в порядке, но jTextField2.getText() возвращает null, чтобы проверить, что – Kris

ответ

11

Это

public static void main(String[] args) { 
    int[] intArray=new int[6]; 
    int i = 0; 
    String s = "123456"; 
    int strLength = s.length(); 
    if(strLength != 6) { 
    System.out.println("Not a valid length"); 
    } else { 
    for(i=0;i<6;i++) { 
     if (!Character.isDigit(s.charAt(i))) { 
     System.out.println("Contains an invalid digit"); 
     break; 
     } 
     intArray[i] = Integer.parseInt(String.valueOf(s.charAt(i))); 
    } 
    } 
    System.out.println(Arrays.toString(intArray)); 
} 

Печать

[1, 2, 3, 4, 5, 6] 

здесь.

+0

Спасибо, что сработали :). – Maggy

Смежные вопросы