Java 索引越界错误 - 缺少条目

标签 java indexing

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

7,118.2722833,98.61084463,94.36895546,,

我遇到的问题是,当我分割行时,我只得到一个长度为 4 的数组。我想让数组的第五个和第六个元素返回 null,但我得到一个索引越界错误。

这是代码的简化版本:

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
    }
}

知道为什么它忽略最后两个逗号吗?

最佳答案

不带任何参数的 split 方法将丢弃任何尾随 null 元素。将负限制传递给 split ,并且它将返回一个数组,其尾随 null 元素完好无损。

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

另外,不要使用!=来判断是否为空字符串;使用

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

关于Java 索引越界错误 - 缺少条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17661098/

相关文章:

java - 为什么正则表达式\w*(\s+|$) 找到 2 个匹配项 "foo"(Java)?

java - 为我的游戏创建一个类 (Slick)

java - Socket异常处理

postgresql - 可以在 PostgreSQL 中的主键上使用 BRIN 索引

java - Java中如何判断类成员是否是静态成员和字段

java - 二叉搜索树中小于给定数量的元素数量

java - 如何在 Hibernate 搜索中索引一组 UUID?

python - Tensorflow 高级索引 : Assign a smaller tensor into a bigger one into a position based on two index tensors

sql-server - SQL Server Profiler 中的死锁图显示同一聚集键上的相互锁定

MongoDB "filtered"索引 : is it possible?