【发布时间】:2016-03-21 11:16:51
【问题描述】:
我正在将 CSV 文件转换为 Java Bean。我需要将逗号保留在 "" 中的值内。
这是我的代码。
public static PPRCV convertContestToObj(String fileName) throws IOException {
PPRCV pprcvHandler = PPRCVFactory.getPPRCVTable(fileName);
CSVFormat csvFileFormat = CSVFormat.DEFAULT.newFormat(',').withEscape('"');
List<PPRCV> pprcvs = new ArrayList<>();
FileReader fileReader = new FileReader(fileName);
CSVParser csvFileParser = new CSVParser(fileReader, csvFileFormat);
List<CSVRecord> csvRecords = csvFileParser.getRecords();
for (CSVRecord csvRecord : csvRecords) {
pprcvs.add(pprcvHandler.populateDynamicDetails(csvRecord));
}
return pprcvHandler;
}
CSV 行示例:
7080001, XI, ProvinceX, TownX, BRGX, "SHOOL, BRGX", "0054A,0055A,0055B,0055C"
我的 DTO
private String precintCode;
private String regionName;
private String provinceName;
private String municipalityName;
private String districtName;
private String votingCenter;
private String precint;
我的预期输出应该是
区域代码 = "7080001"
regionName = "XI"
provinceName = "ProvinceX"
municipalityName = "TownX"
区名 = "BRGX"
votingCenter = "学校,BRGX"
区域 = "0054A,0055A,0055B,0055C"
但是实际输出是这样的
区域代码 = "7080001"
regionName = "XI"
provinceName = "ProvinceX"
municipalityName = "TownX"
区名 = "BRGX"
votingCenter = ""学校"
区域 = " , BRGX,"0054A"
【问题讨论】:
-
您是否考虑过将实现切换到 OpenCSV?与 Apache Commons opencsv.sourceforge.net 的 CSV 支持相比,它具有更丰富的 API