2012-01-18 144 views
2

我正在使用 opencsv来读取csv文件。字段用逗号分隔。但在一个字段中,如果它包含引号,则引号内的逗号不是分隔符。例如,“你好,世界”。 如何处理Java中csv文件的逗号引用?

目前opencsv无法处理。如何解决这个问题?

更新

我发现它不是逗号的问题(到目前为止)。问题行是:...,"a children""s heart\",...。它似乎删除了报价,因此读取字段变为a children"s heart",............代表以下所有数据。

它似乎不是opencsv的问题,但混乱的输入数据。

+1

编写你自己的解析器? – milan 2012-01-18 22:14:34

+0

首先,在功能中声明一个错误报告为'忽略带引号的元素中的逗号'。 – ccoakley 2012-01-18 22:15:45

+0

你是否希望将它作为两个字段返回,即“Hello”和“World”? – tzaman 2012-01-18 22:15:50

回答

2

您可以编写一个自定义代码来搜索您的csv文件,并用,替换引号内的所有逗号或稍后可以识别的特殊字符并将其放回为逗号。

0

根据文档,你可以提供自定义分隔符和引号字符的构造函数,它应该对付它:

CSVReader(Reader reader, char separator, char quotechar) 

,构建你的读者为separator"quotechar