2017-07-28 147 views
-2

刪除基於CSV文件中包含的CSV文件中的重複列的行 。刪除CSV文件中的行

CampaignCode | CellCode  | StartDate | Phone| Account 
C000001413 | A000363363 | 20170601 | 4167292999 | 999999999 
C000001414 | A000363364 | 20170601 | 4167292999 | 999999999 

這裏我想刪除基於Phone列重複項的完整行。 預計產量爲: CampaignCode | CellCode | StartDate |電話|帳戶 C000001413 | A000363363 | 20170601 | 4167292999 | 999999999

+5

你試圖自己解決什麼?這個網站不是爲了獲得現成的答案。請分享您的嘗試,然後尋求幫助。 – Prasanna

+0

在嘗試提出更多問題之前,請閱讀[我如何提出一個好問題?](http://stackoverflow.com/help/how-to-ask)。 –

+0

請閱讀[爲什麼「有人可以幫助我?」不是一個實際的問題?](https://meta.stackoverflow.com/questions/284236/why-is-can-someone-help-me-not-an-實際問題),然後再試圖提出更多問題。 –

回答

-1

爲您解決的方法是逐行讀取csv文件,將每行放入一個列表中,並在您想要的列中檢查重複=>將新行列表寫入當前文件。示例代碼爲你(我用逗號分隔而不是|)

public class CSVReader { 
    public static void main(String[] args) throws IOException { 

     String csvFile = "csv.csv"; 
     BufferedReader br = null; 
     String line = ""; 
     String cvsSplitBy = ","; 
     List<String> lines = new ArrayList<String>(); 
     boolean isDuplicate = false; 

     br = new BufferedReader(new FileReader(csvFile)); 
     while ((line = br.readLine()) != null) { 
      isDuplicate = false; 
      String[] object = line.split(cvsSplitBy); 
      for (String l : lines) { 
       if (l.contains(object[3])) { 
        isDuplicate = true; 
        break; 
       } 
      } 
      if (!isDuplicate) { 
       lines.add(line); 
      } 
     } 
     for (String newL : lines) { 
      System.out.println(newL); 
     } 
     br.close(); 
    } 
} 
+0

你有寫代碼,然後只是測試它。什麼問題使你無法測試它? –

+0

本地測試和它的工作正常。 – vikas