使用opencsv实现双引号(java)

lnxxn5zx  于 2023-11-14  发布在  Java
关注(0)|答案(1)|浏览(140)

我正在使用opencsv来读取Java中的文件。

try (Reader reader = Files.newBufferedReader(pathToFile)) {
    CSVParser parser = new CSVParserBuilder().withSeparator(";").build();
    try (CSVReader csvReader = new CSVReaderBuilder(reader).withSkipLines(1)
        .withCSVParser(parser).build()) {
        List<String[]> csvFileData = csvReader.readAll();
        ....
    }}

字符串
我的CSV文件有以下行:
123;00234;123;Max“Mustermann”;something
解析后的结果为:
马克斯·穆斯特曼
最后的双引号消失了。
有没有可能配置CsvParser在字段的末尾保留引号,我已经尝试了IgnoreQuotations(true),但没有效果?

ego6inou

ego6inou1#

使用Apache Commons CSV解析器-https://commons.apache.org/proper/commons-csv/download_csv.cgi-版本1.10.0。

String str = "123;00234;123;Max \"Mustermann\";something";
try (CSVParser parser = CSVParser.parse(str, CSVFormat.DEFAULT.builder().setDelimiter(';').build())) {
    parser.forEach(System.out::println);
}

字符串
正确解析并返回:

CSVRecord [comment='null', recordNumber=1, values=[123, 00234, 123, Max "Mustermann", something]]

相关问题