[英]Java index out of bounds error - missing entries
我正在嘗試解析一個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
元素。 傳遞負數limit
來split
,它將返回一個數組,該數組保留尾隨null
元素。
datum = line.split(",", -1);
另外,不要使用!=
來查看它是否為空字符串。 采用
if (!("".equals(datum[5]))) {
數組索引從0開始,如果要第5個元素,則需要執行datum[4]
而不是datum[5]
7 --------------0
118.2722833-----1
98.61084463-----2
94.36895546-----3,
----------------4
我建議閱讀有關方法java.lang.String.split(String regex, int limit)
的limit
參數的信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.