【问题标题】:Array Index Out of Bound in javajava中的数组索引越界
【发布时间】:2015-10-26 17:00:48
【问题描述】:
package com.testing;

import java.io.BufferedReader;
import java.io.FileReader;

public class CsvParser {
    public static void main(String[] args) {
        String csvFile = "D:/code-home/SentimentAnalysis/test_data/Sentiment Analysis Dataset.csv";
        BufferedReader br = null;
        String line = "";
        String cvsSplitBy = "\t";

        br = new BufferedReader(new FileReader(csvFile));
        while ((line = br.readLine()) != null) {
                            // use comma as separator
            String []tweet = line.split(cvsSplitBy);
            System.out.println(tweet[1]);
            System.out.println(tweet[3]);
        }
    }

该程序的目的是解析 CSV 格式。我用过bufferRead方法。

当我去编译程序时,它工作正常。当我运行程序时,我得到一个错误,

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at com.testing.CsvParser.main(CsvParser.java:34)

【问题讨论】:

  • 您是否尝试打印您尝试拆分的line?通常 CSV 文件使用逗号分隔符,而不是 \t(CSV = 逗号分隔值)。
  • 文件中有什么内容?显示样本
  • 程序只是在你的文件中告诉你,当你用表格(“\t”)分割它时,没有足够的空间访问第二个插槽(tweet[1])。检查您的文件!
  • 请上传示例文件
  • 在你的程序中查看评论// use comma as separator

标签: java arrays arraylist file-handling


【解决方案1】:

您应该使用逗号分隔符。

改变

String cvsSplitBy = "\t";

String cvsSplitBy = ",";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 2016-01-04
    • 1970-01-01
    相关资源
    最近更新 更多