【问题标题】:How to replace empty elements in 2D java arraylist?如何替换 2D java arraylist 中的空元素?
【发布时间】:2020-01-17 08:01:38
【问题描述】:

如果相似或不适用,我打算用前导/尾随元素值替换 ArrayList 中的空元素。该程序在运行的初始步骤中返回false,因此我无法继续执行它。我究竟做错了什么?请为我建议一个合适的方法,谢谢

            File file=new File("file1.csv");
            Scanner inputStream;
            List<String> header = null; //Store the header in a separate list
            List<List<String>> lines = new ArrayList<>();
            try{
                inputStream = new Scanner(file);

                while(inputStream.hasNext()){
                    String line= inputStream.next();
                    String[] values = line.split(",");
                    if (header == null){
                        header= Arrays.asList(values);
                        continue;//go to the next line as header is read
                    }
                    // Adds the currently parsed line 
                    lines.add(Arrays.asList(values));
                }
                inputStream.close();
            }catch (FileNotFoundException e) {
                e.printStackTrace();
            }
             //fails; outputs "false"
               System.out.println(lines.removeAll(Arrays.asList(Arrays.asList(" "))));

              //test on 1D arraylist- successful
              List<String> colors = new ArrayList<>(Arrays.asList("R", " ", "G", " ", "B"));
              colors.removeAll(Arrays.asList(" "));
              System.out.println(colors);   
// OTHER part of program ..., file2 is expected results   

file1

ID  577 592 598 600 612 650 700 822 825 830 840 870
Line0   A           A                   A           A
Line1   B           B                   NA          B
Line2   B           A                   A           A


file2

ID  577 592 598 600 612 650 700 822 825 830 840 870
Line0   A   A   A   A   A   A   A   A   A   A   A   A
Line1   B   B   B   B   NA  NA  NA  NA  NA  NA  NA  B
Line2   B   NA  NA  A   A   A   A   A   A   A   A   A


【问题讨论】:

    标签: java arraylist hashmap guava opencsv


    【解决方案1】:

    可能String[] values = line.split(","); 行有误,我在您的输入文件中没有看到任何,

    【讨论】:

    • 感谢 @ivan-uqido 的回复。加载的实际文件是一个 csv 文件...只是粘贴制表符分隔在那里以提高可读性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 2023-02-07
    • 1970-01-01
    • 2015-04-16
    • 2017-05-31
    • 1970-01-01
    • 2011-01-27
    相关资源
    最近更新 更多