Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java使用两种模式拆分CSV_Java_Parsing_Csv_Export To Csv - Fatal编程技术网

Java使用两种模式拆分CSV

Java使用两种模式拆分CSV,java,parsing,csv,export-to-csv,Java,Parsing,Csv,Export To Csv,我有这种格式的CSV,我需要根据文本分为16部分: "MY TEXT","EVER, OK",,,,,,,,,,"The, CARLO","DO","ALFA","OME, GA",, 我有这种方法,但当OME中出现带有逗号的case时,GA不起作用 String[] lineToMap = line.split(","); 我怎样才能控制这种情况 解决方案 我在测试工作中很好地发现了这个库:opencsv,但我在编码奇怪的符号方面有问题,比如� 取而代之的是ü,像ü,ö,等等。。我使用德语

我有这种格式的CSV,我需要根据文本分为16部分:

"MY TEXT","EVER, OK",,,,,,,,,,"The, CARLO","DO","ALFA","OME, GA",,
我有这种方法,但当OME中出现带有逗号的case时,GA不起作用

String[] lineToMap = line.split(",");
我怎样才能控制这种情况

解决方案

我在测试工作中很好地发现了这个库:opencsv,但我在编码奇怪的符号方面有问题,比如� 取而代之的是ü,像ü,ö,等等。。我使用德语和法语等语言。我在用UTF-8测试,但没用,有没有办法解决这个问题

CSVReader reader=new CSVReader(new InputStreamReader(new FileInputStream("data/test.csv"), "UTF-8"), 
                ',', '"', 0);
         //Read CSV line by line and use the string array as you want
          String[] nextLine;
          try {
            while ((nextLine = reader.readNext()) != null) {
                 if (nextLine != null) {
                    for (String element : nextLine) {
                        System.out.println(element);
                    }                   
                 }
               }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

尝试拆分,而是手动处理数组开头和结尾的边缘情况。

为什么要拆分它而不使用CSV reader?抓住引号内的每一项。是的,但此行代表16个部分,甚至是空部分,如,,,,=空部分,但我需要采取任何方式,我相信阅读下一步将给你零,如果它是空的。如果有像2,4,5这样的数值,就不会工作了。好的,现在就可以了。我希望你的CSV不是混合的:它也不会在,,,,,,上工作,但是它会让他走得更远。不,这不是他的偏移量会被弄乱的情况。