2016-06-08 64 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

相关问题