2015-04-21 2 views
2

Я получаю сообщение об ошибке Исключение из потока "main" java.lang.ArrayIndexOutOfBoundsException: 0 at sorting.main (sorting.java:53). Я просто пытаюсь передать строковые целочисленные значения в целочисленный массив, но он не работает должным образом. У меня есть переменные выше, такие как count, который определяется количеством целых чисел, которые пользователь хочет ввести. В и другой переменной int[] list = new int[count];, которая является целым массивом, к которому я пытаюсь их передать. Если я ввожу значение 5 для подсчета, я пытаюсь принять только 5 значений целых чисел. Передача их в массив int[] list - это то место, где я запутался.Java Array Index Out of Bounds Exception

// Prompts user to enter the integer values here 
while(true){ 
    System.out.print("\nEnter integer values here seperated by a space: "); 
    intValues = input.readLine(); 
    String[] intCheck = intValues.split("\\s+"); 

    try { 
     for(int j = 0; j < intCheck.length; j++){ 
      list[j] = Integer.parseInt(intCheck[j]);  // LINE 53 IS HERE 
     } 
    } 
    catch (NumberFormatException ex) { 
     System.err.println("You need to enter valid integer numbers. Try again."); 
    }  
} 
+2

Ваш массив 'intCheck' больше, чем массив' list'. Это все. –

+1

Покажите нам свою декларацию 'list' и возьмите' ArrayList' не 'Int Array', так что он будет динамически увеличивать его размер. – Babel

+0

Я не понимаю, как –

ответ

0

у вас, вероятно, есть дополнительное пространство в конце, чтобы ваш раскол возвращал перекрывающийся массив. Используйте j < count.

0

Я получил свою ошибку. Я объявил int count = 0 на ранней стадии. Затем чуть ниже того, что я объявил int[] list = new int[count], который принимал 0 значений. Я должен был объявить диапазон после того, как я попросил пользователя ввести информацию.