.CSV 파일을 구문 분석하고 있습니다. 줄 다음에 한 줄을 가져오고 열 값을 가져 오려고합니다. 그래서 내 .CSV 파일로 예 : 내가 한 그래서배열의 마지막 요소에 액세스 할 수 없습니다.
time;columnA;columnB,ColumnC
27-08-2013 14:43:00; this is a text; this too; same here
가 bidimensional String 배열의 콘텐츠를 저장하는 것입니다 ((분할 감사)). 내 배열이 다음과 같이 이루어진다 :
array[0][x] = "time".
array[y][x] = "27-08-2013 14:43:00";
들은 다른 열에 X이지만 열마다의 이름 만 행에 저장된다 [0] [X]. 그들은 값이 String으로 저장된 y 개의 다른 행입니다.
내 문제는 다음과 같습니다. 데이터의 [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 값이 전체 문자열보다 작은 것을 선택하지 않았기 때문에이 될 수있다 생각했다. 이 같은 :
x < index[x].length
그러나 사실 난 아무것도 변경되지 않았고, 내가 알 수없는 String var
을 줄 때 그것은 또한 너무 멀리 간다. 왜?
당신은 4 열을 가지고 있지만, 액세스 (17) 시도? –
아니, 내 실제 테스트 파일에서 나는 엄청난 양의 데이터를 가지고있다. 하지만 실제로 17 열을 가지고 있으며, 17st에 액세스하려고 시도합니다.) – trolologuy
17 열이있는 경우 인덱싱이 0부터 시작되기 때문에 마지막 인덱스는 16입니다. 디버거를 사용하여 코드를 살펴보십시오. –