Java .split () Массив вне границ - PullRequest
0 голосов
/ 08 декабря 2018

Я получаю эту ошибку Array out of bounds для следующего кода.

brock.txt = программа отражения, рутина, Arrow, игра змея,

public static void main(String[] args) {
    String filename = "brock.txt";
    String line; 
    String [] cities = {};
    int x = 0;
    try {

    BufferedReader eshread = new BufferedReader( new FileReader (filename));
        line = "";

        while ((line = eshread.readLine()) != null ) {
        String[] store = line.split(",");
        System.out.println(store[0]);
        System.out.println(store[1]);
        System.out.println(store[2]);
        cities[x] = store[2];            //< keep getting an error here
        x++;
        }//end while loop
        eshread.close();
        }//end try
    catch(IOException iox) {
    System.out.println("failiure");
    }//end catch

Ответы [ 4 ]

0 голосов
/ 08 декабря 2018

В соответствии с другими комментариями.Проблема связана с размером массива towns , который устанавливается равным 0, и, следовательно, проблемой для массива вне границ.Я попробовал следующий код, и он работает, если вы хотите работать с массивом String.В противном случае ArrayList является лучшим решением, если размер не определен.

    String [] cities = new String[10];
0 голосов
/ 08 декабря 2018

Вы должны определить размер городов или использовать список.

0 голосов
/ 08 декабря 2018

Вы инициализировали cities пустым массивом ({}), что означает, что он имеет длину 0 (не нуль, а пустой массив).Используя cities[0], вы ожидаете, что в нем есть хотя бы один элемент, что неверно.

Чтобы исправить это, используйте ArrayList<String> вместо массива String.

0 голосов
/ 08 декабря 2018

String [] cities = {} сделает размер массива равным 0, когда x больше, чем 0, произойдет ошибка, в этом причина, поэтому вам нужно сначала установить cities фиксированный размер или использовать List сделать это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...