展开全部
这个的难点就在怎样读出 人名62616964757a686964616fe58685e5aeb931333332636336 和人名对应的数据。我都提取出来放大map当中了剩下的就easy了。不过这个方法有很多地方可以改进。Scanner scanner = new Scanner(new File("E:\\安装软件\\score.txt"));
int countName=0;
String name = "";
Map> gradeMap=new HashMap>();
Listscores=null;
while(scanner.hasNext()){
if(countName%2==0&&countName!=0){
System.out.println(name);
}
try{
int a=scanner.nextInt();
scores.add(a);
System.out.println(""+a);
}catch(Exception ex){
countName++;
if(countName%2==1){
if(countName!=1){
gradeMap.put(name, (List) scores);
}
scores=new ArrayList();
System.out.println("a new person");
name="";
}
String a=scanner.next();
name=name+" "+a;
}
}
gradeMap.put(name, (List) scores);
System.out.println("*************************************");
for(String nameString :gradeMap.keySet()){
System.out.println(nameString+" ");
for (int score :gradeMap.get(nameString)) {
System.out.print(score+ " " );
}
System.out.println();
}