2014-12-20 3 views
1

전역으로 문자열 배열을 선언했습니다. while 루프의 메소드에서 일부 값을 할당하려고 시도하면이 토큰 다음에 VariableDeclaratorID가 필요합니다.java while 루프의 VariableDeclaratorID 예외

//global declaration 
String name[]; 

While (scanner.hasNextLine()){ 
String input = scanner.nexLine(); 
name[] = input.split(","); //here error - Syntax error on token "]", VariableDeclaratorId expected after this token 
} 

이 문제를 해결하는 데 도움을주십시오.

답변

0
name = input.split(","); 

:

따라서, 귀하의 코드를 변경합니다. 이것이 당신이하고 싶은 것이 아니라면, ArrayList (동적으로 크기가 조절 될 것입니다)를 사용하는 것이 좋습니다.

ArrayList<String[]> name = new ArrayList<String[]>(); 

그런 다음 단순히 파일에서 읽을 각 라인

name.add(input.split(",")); 

를 호출합니다.

1

name = input.split(","); 
+0

안녕하세요. Siva. 스캐너에서 csv 파일을 제공하고 있으며 그 내용을 셀 단위로 필요로합니다. Thats y는 문자열 배열을 취했습니다. 내 논리가 잘못되면 나를 정정하십시오. – user3774445

+0

@ user3774445 귀하의 논리가 맞습니다. 배열을 초기화하는 동안에 만 변수를 변경해야합니다. –

0

대괄호 [] 만이 배열을 선언 할 때, 배열을 초기화하거나 배열의 요소에 액세스 사용하려고합니다.

전체 배열에 값을 할당하면 필요하지 않습니다. 당신이 당신의 배열의 내용마다 덮어 쓰기 될 파일에서 읽은 각 행에 대해 위의 라인을 호출하여

String name[]; 

While (scanner.hasNextLine()){ 
    String input = scanner.nexLine(); 
    name = input.split(","); 
} 
+0

개념을 주셔서 감사합니다. – user3774445