2017-03-15 7 views
0

を捨て、私はCSVには、以下の情報を含むファイルがあります。スプリット情報、文字列をカウントし、重複に

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

私は交通の種類から数字を分割したいです。どのように私は車+飛行機+ボートの合計を '7'ではなく '3'に数えることができますか?

私は他の誰かがCSV分割するために提供することを、次のJavaコードを使用しています

:アレイでは

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); 
関連する問題