2012-01-18 132 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