OpenCsv分割行格式异常

时间:2019-04-10 12:26:33

标签: java csv opencsv

我正在使用OpenCSV解析csv文件中的某些行。此刻,我面临着一个相当麻烦的案例:

'10,00', '20,00','aaa', '       false   true         '\n
'aaaaa\'', '-*/++;;', '','-'
'1898302','21/07/2011','12:59','7104'

我需要将其存储在List<List<String>>中,以便与之匹配:

listExpected = Arrays.asList(Arrays.asList("10,00", "20,00", "aaa", "       false   true         "),
                Arrays.asList("aaaaa'", "-*/++;;", "", "-"),
                Arrays.asList("1898302", "21/07/2011", "12:59", "7104"));

那是我得到的错误:

Expected :[[10,00, 20,00, aaa,        false   true         ], [aaaaa', -*/++;;, , -], [1898302, 21/07/2011, 12:59, 7104]]
Actual   :[['10, 00',  '20, 00', 'aaa',  '       false   true         '], ['aaaaa'',  '-*/++;;',  '', '-'], ['1898302', '21/07/2011', '12:59', '7104']]

这是我正在使用的代码:

 List<String> splittedLines = // manually split
 List<List<String>> toReturn = new ArrayList<>();

 CSVParser csvParser = new CSVParserBuilder()
     .withSeparator(',')
     .build();
 for (String sLines : splittedLines) {
     CSVReader reader = new CSVReaderBuilder(new StringReader(sLines))
         .withCSVParser(csvParser)
         .build();

      for (String[] line : reader)
          toReturn.add(Arrays.stream(line).collect(toList()));
 }
 return toReturn;

在第一行中,我将手动拆分行,因为我需要分别对每个行执行一些操作。 然后,我将每一行输入读者,但是那些奇怪的格式让我感到困惑。 此外,在输入的第一行中,分隔符还会出现在一个或多个实际值中,并且该库似乎无法准确地对其进行解析。

有人可以帮忙吗?

0 个答案:

没有答案