<分区>
使用 OpenCSV,我正在尝试编写一个 CSV 文件,其中
- 文本值用
"
引号括起来。 - 数值不用引号括起来(因为它们应该被最终读取 CSV 文件的程序视为数字,而不是字符串)。
示例所需输出:
将读取 CSV 文件的程序所需的格式:
"Header 1","Header 2","Header 3"
123.4,234.6,999.8
456456.32,1222.4,2222.2
尝试的解决方案:
到目前为止我最好的尝试是:
CSVWriter csvWriter = new CSVWriter(new FileWriter(csvFile),',','\0');
其中引号字符设置为 '\0'
即空字符(并且分隔符像往常一样保留为 ,
)。
这不会在任何值周围加上引号。为了弥补文本值周围缺少 "
引号,我“手动”在每个文本值前加上一个乱码引号 "\""
(这相当易于管理,因为我的标题实际上只是其中唯一包含文本的内容)。
for (int i=0;i<headers.length;++i) {
headers[i] = "\"" + headers[i] + "\"";
}
实际输出:
我真的以为这会成功,但输出看起来像这样:
""Header 1"",""Header 2"",""Header 3""
123.4,234.6,999.8
456456.32,1222.4,2222.2
文本值用双引号括起来""
!
- 为什么?
- 我该如何解决这个问题?