gpt4 book ai didi

java - 解析 CSV 文件,但除了分隔数据外不进行格式化

转载 作者:行者123 更新时间:2023-12-02 12:18:22 25 4
gpt4 key购买 nike

我有以下格式的数据

PAL : PAL : NF : "INCOME"."Taxable"
PAL : PAL : NF : "EXPENSES"."TotalExpenses"
PAL : PAL : NF : "EXPENSES"."Exceptional"

在java中,我只想分隔数据而不进行任何格式化,在输出中也应该出现引号。我通常使用Univocity,当使用下面的代码时,

    //Simple CSV File Read
List<String[]> allRows;
try {
CsvParserSettings settings = new CsvParserSettings();
settings.getFormat().setLineSeparator("\n");
settings.getFormat().setDelimiter(':');

CsvParser parser = new CsvParser(settings);
allRows = parser.parseAll(new FileReader(new File(csvFile)));
int i =0, cols=0;
for(String[] str:allRows){
i++;
cols = str.length;

for(String s:str)
System.out.print(s+" == ");

System.out.println("");
if(i == 10) break;
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

输出如下,句点符号在引号内,我期望输出像输入一样,引号应该出现。

PAL == PAL == NF == INCOME"."Taxable
PAL == PAL == NF == EXPENSES"."TotalExpenses
PAL == PAL == NF == EXPENSES"."Exceptional

预期输出

PAL == PAL == NF == "INCOME"."Taxable"
PAL == PAL == NF == "EXPENSES"."TotalExpenses"
PAL == PAL == NF == "EXPENSES"."Exceptional"

最佳答案

这里是该库的作者。问题是 "INCOME"."Taxable" 被处理为带引号的值,并且它正在处理 INCOMETaxable 之间的引号作为未转义的引号。

它基本上会尝试“拯救”该值并找到结束引号或分隔符(由 settings.setUnescapedQuoteHandling(...) 确定)。

在您的情况下,最简单的方法是将引号字符设置为 ' 或什至 \0 (如果您的输入不必处理带引号的值)反正。有了这个,您应该得到您期望的“INCOME”.“Taxable”

希望这有帮助

关于java - 解析 CSV 文件,但除了分隔数据外不进行格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45985147/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com