文件操作简单,每次读一行进来。然后就是字符串的操作。
你可以用java的Set集合来保存你的信息(set只允许在集合中存在一个记录)。

解决方案 »

  1.   

    最好说明一下JDK的版本,最近老开发1.3的咚咚,老不爽的说
      

  2.   

    我写了一个给你看看:
    完成的程序,把input.f和output.f和源程序放在一起:
    /*
    * @author ken
    * @email [email protected]
    *
    */
    import java.util.*;
    import java.io.*;
    public class SortCounter {    
        public static void main(String[] args)
        {
            try
            {          
                FileReader fileReader=new FileReader("input.f"); 
                FileWriter fileWriter=new FileWriter("output.f",true);
                BufferedReader bufferedReader=new BufferedReader(fileReader);
                PrintWriter printWriter=new PrintWriter(fileWriter,true);
                int cnt=0;
                int b;
                Object key,value;
                String comp_score="";
                String[] Arr_tmp;
                String tmp="";
                String charat="";
    boolean TagOfBreak=true;
                HashMap map=new HashMap();
                while((tmp=bufferedReader.readLine())!=null)
                {    
    cnt++;           
                    Arr_tmp=tmp.split(":");
                    comp_score=Arr_tmp[0]+":";
    TagOfBreak=true;
                    for(int i=0;i<Arr_tmp[1].length();i++)
                    {
                        charat=Arr_tmp[1].charAt(i)+"";
    for(int j=0;j<10;j++){
    if(charat.equals(j+""))
    {
    comp_score=comp_score+charat;
    TagOfBreak=false;
    }
    }
    if(TagOfBreak)break;
                    }
                    
                    key=(Object)comp_score;
                    value=map.get(key);
                    if(value!=null)
                        value=(Object)((Integer.parseInt(value.toString())+1)+"");
                    if(map.containsKey(comp_score))
                    {
                        map.put(key,value);
                    }
                    else
                    {
                        map.put(key,(Object)(1+""));
                    }
                }
                bufferedReader.close();
                fileReader.close();
                
                Set set=map.keySet();
                for(Iterator it=set.iterator();it.hasNext();)
                {
    value=it.next();
                    //System.out.print(value);
    //System.out.println("|||||"+map.get(value));
                    printWriter.println(value+"\t"+map.get(value));
                } 
    System.out.println(cnt+"||||||||||||||||||||||||"+set.size());
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }          
        }     
    }
      

  3.   

    记得给分哦。呵呵~~~~
    ------------------------------------------------------------
    一定一定!
    其实写一个并不是太难,我主要想看看效率方面如何处理的;
    当有几十M 的input.f 时,你的程序处理的速度如何~
      

  4.   

    楼上一个main方法包括了所有操作,强的。
    应该拆分一下吧.......
    我想象中可以分为主队比分和客队比分,根据比分来操作。字符串操作总是不太好。
    class Score {
      int host_score = 0;
      int guest_score = 0;
    }
    这样也便于以后稀奇古怪比分的排序,胜负的计算等等.Java程序主要的不是效率问题,而是扩展性和灵活性.文件太大要看内存的,弄不好就死翘翘了.
    一点点看法而已