Java索引超出范围错误 - 缺少条目

时间:2013-07-15 18:20:40

标签: java indexing

我正在尝试解析csv文件。典型的线条如下所示:

7,118.2722833,98.61084463,94.36895546,,

我遇到的问题是,当我分割线时,我只得到一个4的数组长度。我想让数组的第五和第六个元素返回null,但我得到一个index out of bounds error。

以下是代码的简化版本:

BufferedReader br = new BufferedReader(new FileReader("FileName"));
String line = "";
String[] datum = new String[6];

while ((line = br.readLine()) != null) {
    datum = line.split(",");

    if (datum[5] != "") {
        //some statements
    }
}

知道为什么忽略最后2个逗号?

3 个答案:

答案 0 :(得分:4)

不带任何参数的split方法将丢弃任何尾随的null元素。将否定limit传递给split,它将返回一个尾随null元素的数组。

datum = line.split(",", -1);

另外,请勿使用!=查看它是否为空字符串;使用

if (!("".equals(datum[5]))) {

答案 1 :(得分:1)

数组索引从0开始,如果你想要第5个元素,你需要做datum[4]而不是datum[5]

7 --------------0
118.2722833-----1
98.61084463-----2
94.36895546-----3,
 ----------------4

答案 2 :(得分:0)

我建议您阅读方法java.lang.String.split(String regex, int limit)

limit参数