我正在尝试解析 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/