2017-07-28 108 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