我目前正在处理CSV文件中的数据导入。 我无法决定一个需要添加到以逗号分隔的字段的变量。以下是数据 -
"acNumber","Date","Code"
12332,123 09/12/2012 1231
这是所需的格式。它是如何实际显示的
"acNumber","Date","Code"
12332 123 09/12/2012 ...
发送的实际数据是字符串&格式如下 -
"12332,13321","08/08/2016","1234"
我已尝试过以下可能的解决方案 -
1)使用建议here
的引号包围我的代码""12332,13321""
我添加了两个双引号,因为引号中已经包含了这个值。我也试过单引号。
2)在最终输出字符串中逗号之前使用转义符(" \")
"12332\,13321"
我已经搜索过它,仍然没有找到任何解决方案。请提供帮助。
答案 0 :(得分:3)
如果你想要转义你的分隔符,这是一个逗号,你应该把内容放在双引号之间,所以如果你有12332,123
,你应该把"12332,123"
放在你的CSV文件中。
如果你想要在双引号之间转义内容,你可以将它放在两个新的双引号之间,这样会产生三个双引号,所以如果你有"12332,13321"
,你应该放"""12332,13321"""
答案 1 :(得分:1)
答案 2 :(得分:0)
可能这不是您正在寻找的答案。但是,我建议使用库来编写csv,例如来自apache commons的那个。它具有默认CSVFormat
- s,例如一个Excel。这个lib非常易于配置,所以定制它相对容易。
通常,我建议将第三方库用于常见任务。
这是关于如何使用apache commons csv lib:
的代码片段 List<String> record = Arrays.asList("acNumber","Date","Code");
StringBuilder builder = new StringBuilder();
try (CSVPrinter csvPrinter = new CSVPrinter(builder, CSVFormat.EXCEL)) {
csvPrinter.printRecord(record);
}
答案 3 :(得分:0)
我修好了。
愚弄我,忽视&#34; =&#34;在我的领域前。 我试图在不考虑它的情况下找到解决方案。后来我认为它是我价值的一部分,并且知道为什么它被使用。发现解决方案here。我将值重新格式化如下 -
"=""432234,23423"""