2017-03-15 47 views
0

我有一个CSV以下信息文件:拆分信息,算上串并丢弃重复

2,Cars 
5,Cars 
5,Planes 
5,Boats 
10,Planes 
10,Boats 
28,Planes 

我想这一数字从交通的类型划分。我怎样才能算出汽车+飞机+船的总数是'3'而不是'7'?

我使用下面的Java代码,别人提供分裂CSV:

try { 
     BufferedReader br2 = new BufferedReader(new FileReader("transport.csv")); 

     System.out.println("\nTESTING"); 
     String sCurrentLine2; 
     java.util.HashMap<String, String>(); 

     while ((sCurrentLine2 = br2.readLine()) != null) { 

      String[] information2 = sCurrentLine2.split(","); 

      String transCode = information2[1]; 
      System.out.println(transCode); 

     } 

    } catch (IOException e) { 
     e.printStackTrace(); 
} 

在阵列字符串转码=信息2 [1];当我更改为0时,它会给出数字,当我更改为1时给出名称。

回答

0
while((sCurrentLine2 = br2.readLine()) != null{ 
    String[] entries = sCurrentLine2.split(","); 
    Set<String> types = new Hashset<>(); 
    for(int i = 0; i < entries.length; i++){ 
     String[] entry = entries[i].split(" "); 
     types.add(entry[0]); 
    } 
    System.out.println(types.size()); 
} 
0

我修改了您提供的代码。也许还有另一种方法可以做得更好,但这就是我所做的。我强迫它一点,并给出'3'作为结果。但是它应该把它计算在不考虑重复的词语中。

 while ((line2 = br2.readLine()) != null) { 
      String[] entries = line2.split(","); 

      for (int i = 0; i < entries.length; i++) { 
       String[] entry = entries[i].split(" "); 
       termsDup.add(entry[0]); 
      } 

     } 
     System.out.println(termsDup.size()-4);