2014-03-27 102 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

你想在這裏做什麼?如果可以的話,使用一個類似'String replaced = str.replaceAll(「[\」\']「,」「)'的內建函數來刪除字符串中的所有空格,單引號和雙引號。 – Michael

+0

我想分割所有單詞。例如; abc「de」 – pilkington

1
while(i < chars.length) 

i++ ; 

將會讓你陷入麻煩

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

我想你應該檢查的「i」變量總是後的「i ++」操作 - 在大多數檢查它之外,同時是不夠的,你可以走出陣列大小