2014-01-23 78 views
-1

我寫一個CSV parts.Its容易用java寫它的一部分解析CSV文件時,分隔符是數據

String s = null 
while((s= bufferedReadr.readLine() !=null){ 
    String parts[] = s.split(','); 
    //process parts 
} 

The problem is data is in format 
"a", "b","c","d","e","f". 

But some of the data is 
"a" ,",b" ,"c",",a","e","f" . 

編輯

事情是我得到的CSV的一行從其他一些我不能改變的代碼輸入。

所以我得到每一個CSV格式的行。我想拆分。我不能使用csvlibs,因爲他們解析整個文件,並要求處理文件。

一些報價與數據部分存在是造成問題。

我該如何解決這個問題?我可以使用任何打開的src庫嗎?

+4

'opencsv',超級CSV。你的谷歌是否下降? –

回答

2

請勿自行分割數據。使用可以完成這項工作的可用庫之一。例如,看看opencsv

+0

:你可以評論我的編輯 – user93796

+0

@ user93796,沒問題。檢查API。它應該允許傳遞流或讀者。您始終可以使用'StringReader'包裝字符串並使用單行的CSV解析器。如果你想努力工作並且自己削減一下,你可以使用積極/令人厭惡的前瞻'(?!X)',但這似乎很複雜。我個人不知道如何編寫這樣的正則表達式。或者,您可以通過迭代字符並調用'substring()'來分割字符串。這將工作。 – AlexR

+0

我最後使用了apache commons CSVReader。 – user93796

1

正如其他評論所說,使用OpenCSV。 還有就是CSVReadr類此構造器

public CSVReader(Reader reader, char separator, char quotechar)
而像 readAll(), readNext(), .... 關於閱讀方法,也有很多不同的選擇: .., InputStreamReader, StringReader