我正在使用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;
在第一行中,我将手动拆分行,因为我需要分别对每个行执行一些操作。 然后,我将每一行输入读者,但是那些奇怪的格式让我感到困惑。 此外,在输入的第一行中,分隔符还会出现在一个或多个实际值中,并且该库似乎无法准确地对其进行解析。
有人可以帮忙吗?