【问题标题】:CSV input to two dimmensional array in javaCSV输入到Java中的二维数组
【发布时间】:2017-02-21 16:18:16
【问题描述】:

我有一个 read() 方法,在里面我想分离字符串(它们之间有空格)并将它们放在一个二维数组中,但在此之前我要去掉所有的空格。数组初始化后,将其提供给 CSV 构造函数,即创建自己的二维数组。 问题是我总是收到以下错误:CSV csv = new CSV(sr) 处的“变量 sr 可能尚未初始化”。 如何确保我的数组获得有效的字符串?

private String[][] tomb;

private CSV(String[][] t2) {
    tomb = new String[t2.length][];
    for(int i = 0; i < t2.length; i++) {
        tomb[i] = new String[t2[i].length];
        for(int j = 0; j < t2[i].length; j++) {
            tomb[i][j] = t2[i][j];
        }
    }
}

public static CSV read(Scanner sc) {

    String[][] sr;    
    int n = 0;
    while (sc.hasNextLine()) 
    {
        String line = sc.nextLine();
        String[] str = line.split(",");
        sr = new String[str.length][];
        for (int i = 0; i < str.length; i++) {
            sr[i][n].replaceAll("\\s+","");

        }
        n++;
    }

    CSV csv = new CSV(sr);
    return csv;

}

【问题讨论】:

    标签: java arrays csv


    【解决方案1】:

    您可以通过在初始化中将sr 设置为null 来解决错误:

    String[][] sr = null;
    

    如果要确保sr 设置正确,可以在while 循环完成后检查sr 是否仍为null

    【讨论】:

    • 谢谢!它解决了这个问题,但是当我想运行它时,NullPointerException 出现在 sr[i][n].replaceAll("\\s+","");排。我不能为数组提供单个字符串
    • @AkosFajszi,由于sr 为空,您在该行收到空指针异常。你需要在sr = new String[str.length][];之后存储一些东西到sr
    猜你喜欢
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多