2016-06-08 58 views
-6
while ((line = inputStream.readLine()) != null) { 

        String[] words = line.split("\\s+"); 
        String a=words[0]; 
        String b=words[1]; 
        String c=words[2]; 
} 

而編制的陣列我得到了錯誤Java數組使用:異常線程 「main」 java.lang.ArrayIndexOutOfBoundsException:2串

"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 " in "String b=words[1]".請提供一些解決方案。

+0

看起來你行2位沒有被分割,所以第二部分不存在?添加一個'if'來檢查單詞的大小,或者學習更多關於您的語言的信息。 –

回答

0

索引的編號起始於Java中的0。您的words陣列可能只包含2個元素,這就是爲什麼您獲得第3個元素的ArrayIndexOutOfBoundsException

無論如何,如果你真的可以提供輸入字符串,它會更好。

嘗試:

while ((line = inputStream.readLine()) != null) { 

        String[] words = line.split("\\s+"); 
        if(words.length >= 3){ 
         String a=words[0]; 
         String b=words[1]; 
         String c=words[2]; 
        }      
} 
+0

編輯完成後,它在「字符串b =字[1]」中顯示相同的錯誤。其實我試圖得到一條線的第三個元素。 – anju

+0

那麼你的話語數組只包含一個元素。這就是爲什麼你應該提供輸入字符串,所以我們可以更好地理解你想用你的正則表達式實現什麼。 – eol

+0

輸入格式爲 0.000000000 \t 211.152.36.37 \t 75.130.96.12 這是單行文件。我正在嘗試讀取包含97178這種行的這種格式的文件,並獲取每行的第三個元素。 – anju

相關問題