Я разбираю файл .CSV, строку после строки, и я хочу получить значения столбцов. Так как пример для моего файла .CSV:Не удается получить доступ к последнему элементу массива
time;columnA;columnB,ColumnC
27-08-2013 14:43:00; this is a text; this too; same here
Так что я сделал это сохранить содержимое в двумерном массиве строк (спасибо расколоть()). Мой массив выполнен следующим образом:
array[0][x] = "time".
array[y][x] = "27-08-2013 14:43:00";
они х различных столбцов, но имя каждого столбца сохраняется только в строке [0] [х]. это разные строки, со значением, хранящимся в нем как String.
Моя проблема заключается в следующем: я хочу получить позицию [x] данных, но когда я попытаюсь получить доступ к последнему элементу [x] массива. я получаю это как сообщения об ошибке
java.lang.ArrayIndexOutOfBoundsException: 17
at IOControl.ReadCsvFile.getPosVar(ReadCsvFile.java:22)
at IOControl.ReadCsvFile.<init>(ReadCsvFile.java:121)
at en.window.Main.main(Main.java:48)
Очевидно, я читаю далеко, но как?
Вот мой код:
//Retrieves the x position of the variable var given as parameter.
private int getPosVar(String[][] index, String var)
{
int x = 0;
boolean cond = false;
while((index[0][x] != null) && (cond != true))
{
if (index[0][x].contains(var) == true)
{
cond = true;
}
x++;
}
System.out.println("x = " +x+ " val = " +index[0][x]);
return(x);
}
Я думал, что это может быть потому, что я не проверил, что мое й значение было меньше полная строка. так:
x < index[x].length
Но на самом деле я ничего не изменил, и когда я даю неизвестную String var
также заходит слишком далеко. Почему?
У вас есть 4 столбца, но попытайтесь получить доступ к 17? –
Нет, в моем реальном файле теста у меня есть огромное количество данных, для понимания цели я их вырезал. Но на самом деле у меня есть 17 столбцов, и я пытаюсь получить доступ к 17-му;) – trolologuy
Если у вас есть 17 столбцов, последний индекс равен 16, так как индексирование начинается с 0. Пройдите через свой код с помощью отладчика. –