2014-03-12 70 views
0

以下示例是來自csv文件的記錄,該記錄由逗號分隔符分隔但是,如果某個特定列具有像下面的逗號一樣的逗號,用csv文件中的雙引號「」顯示。從CSV文件讀取帶有在其本身中指定的分隔符的csv文件

例子:列1,列2,「列3」, - ,1G9937

當我嘗試使用我的Java代碼,它只是打印列,而不是列第三的位置讀取該文件, 3我如何處理這種情況?

String cvsSplitBy = ","; 

try { 

    br = new BufferedReader(new FileReader(csvFile)); 
    while ((line = br.readLine()) != null) { 

      // use comma as separator 
     String[] businessdirection = line.split(cvsSplitBy); 

     System.out.println("FuncVP = " + businessdirection[0] + " , VP=" + businessdirection[1] + " , VP=" + businessdirection[2]+ " , VP=" + businessdirection[3] + " , VP=" + businessdirection[4]+ " , VP=" + businessdirection[5]); 
+1

看起來像這可能是有幫助的:http://stackoverflow.com/questions/1757065/splitting-a-comma-separated-string-but-ignoring-commas-in-quotes –

回答

1

你不能只是簡單地使用split解析CSV文件。您可以使用庫(例如SuperCSV或OpenCSV),否則您將不得不遵循所有的CSV格式規則。例如,在這裏你應該忽略雙引號之間的分隔符(即逗號)(你可以使用正則表達式)。

1

使用現有的CSV閱讀器庫,如OpenCSV或另一個。 關於CSV的許多方面比你想象的要困難得多,例如逗號或值內的新行。你不能僅僅通過分割逗號來解析它,你甚至不能假設文本文件中的一行表示一行數據。

相關問題