0

以下は、.csvファイルを読み取って出力を印刷するためのプログラムですが、入力と出力に記載されている以下の機能を実行できません。基本的に、2つの異なるグループで利用できる場合は、ユーザーIDを個別にリストする必要があります。

私の入力は次のようになります。

User ID       Group

ABC           Group1   
DEF           Group2
ABC           Group3
GHI           Group4

ABCは2つの異なるグループで利用できるため、次のような出力が必要です。

ABC     Group1
ABC     Group3

手伝ってもらえますか?

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.StringTokenizer;

public class dumpRead {
    public static void main(String[] args) {
        try {

            //csv file containing data
            String strFile = "C:/Tracker/read/data.csv";

            //create BufferedReader to read csv file
            BufferedReader br = new BufferedReader( new FileReader(strFile));
            String strLine = "";
            StringTokenizer st = null;
            int lineNumber = 0, tokenNumber = 0;

            //read comma separated file line by line
            while( (strLine = br.readLine()) != null){
                lineNumber++;

                //break comma separated line using ","
                st = new StringTokenizer(strLine, ",");

                while(st.hasMoreTokens()){
                    //display csv values
                    tokenNumber++;
                    System.out.println("Token # " + tokenNumber 
                    + ", Token : "+ st.nextToken());
                }

                //reset token number
                tokenNumber = 0;                        
            }
        }
        catch(Exception e) {
            System.out.println("Exception while reading csv file: " +     e);                   
        }
    }
}
4

1 に答える 1

1

すべてのユーザーIDを解析し、HashMapに配置します>

ユーザーIDごとに、ハッシュマップにすでに存在するかどうかを確認し、すでに存在する場合は、対応するセットを取得してリストの最後に追加します。ハッシュマップにユーザーが含まれていない場合は、新しいHashSetを作成し、グループを追加します

注:HashSetの背後にある考え方は、重複を無視するということです

疑似コードは次のようになりますが、

for(string user: users)
{
  if(hashmap.contains(user))
    {
       HashSet<Sting> usergroups = hashmap.get(user);
       usergroups.add(group);
    }
   else
    {
      HashSet<String> groups = new HashSet<String> ();
       groups.add(group);
    }
}
于 2012-04-25T22:17:24.983 に答える