2014-03-27 3 views
0
} 

저는 input.txt 파일이 있는데 콘솔에서 호출하려고합니다. 이 파일에는 공백과 따옴표가 포함됩니다. 이 코드를 작성하지만 오류가 발생합니다. 이 코드에 내 잘못은 어디 있니?중첩 된 if 문에서 java.lang.ArrayIndexOutOfBoundsException 오류가 발생했습니다.

또한 오류로 인해 if (chars[i]=='"'){ j = i ; i++ ; while (chars[i] != '"'){ i++; } System.out.println(str.substring(j,i)); } 으로 인쇄가 작동하지 않습니다.

+0

라인에서 ?? – kai

+0

여기에 기본적인 실수를하고 있습니다. java의 배열은 인덱스 0에서 시작하므로 길이가 N이라도 최대 배열 인덱스는 N-1입니다. – Slimu

답변

0

에서 곤경에 당신을 얻을 것인가? 문자열 " " (단일 공간)의 경우

while(i < chars.length) // i == 0 
    chars[0] == ' ' // true; 
    i++; // i = 1 (past array end) 
    if (chars[1] == '"') // you've accessed past the end of the array and you get the exception 
+0

예외 부분이 이런 방식으로 해결되었습니다. 하지만 내 코드는 따옴표로 작동하지 않습니다. 따옴표는 사용하지 않으며 공백 만 사용합니다. 이 문제를 어떻게 해결할 수 있습니까? – pilkington

+0

여기에서 성취하려는 것은 무엇입니까? 가능한 경우, 문자열에서 모든 공백, 작은 따옴표 및 큰 따옴표를 제거하기 위해'replaced = str.replaceAll ("[\"\ '] "," ")'와 같은 내장 문자를 사용하십시오 – Michael

+0

모든 단어를 분리하고 싶습니다. input.txt에서이 단어들을 공백과 따옴표로 구분해야합니다 예 : abc "de" – pilkington

1
while(i < chars.length) 

i++ ; 

는 문자열의 마지막 문자 ''하면 어떻게됩니까

if (chars[i]=='"'){ 
0

난 당신이 "나는 ++"항상 후 "I"변수 작업을 확인해야합니다 생각에서

봐는 -, 동안이 충분하지 않습니다 외부의 대부분을 확인 당신은 배열 크기 밖으로 갈 수 있습니다

관련 문제