Hashtable的put 的两个参数都是Object:
   user.put(username,usetime);
是错的,应时:
   user.put(username,new Integer(usetime));
相应:
   addtime=user.get(username);
应该为:
   addtime=((Integer)user.get(username)).intValue();
*另外,你的愿意是不是要把 usetime也打印出来?如果那样在输出时要加上:
   int times=((Integer)user.get(key)).intValue();
   System.out.println("Key is: " + key.toString()+" usetime:"+times);
这样,我运行了,输出结果类似:
   ---------- run ----------
Key is: gang usetime:10
Key is: niu usetime:11
Key is: zhao usetime:3
Normal Termination
Output completed (5 sec consumed).

解决方案 »

  1.   

    附带我的测试 fee.txt:
    zhao 3
    gang 10
    niu 11
      

  2.   

    import java.io.*;
    import java.util.*;public class fee1
    {
    public static void main(String arg[])
    {Hashtable user=new Hashtable();
          
    try
    {
    String line_str;
    int line_number=0;
    int addtime;
    String username="0";
    String usetime="0";
    FileInputStream is=new FileInputStream("fee.txt");
    DataInputStream ds=new DataInputStream(is);
    while((line_str=ds.readLine())!=null)
    {
    line_number++;StringTokenizer st=new StringTokenizer(line_str);
    //get username and usetime
    //System.out.println("line="+line_number+"--->"+line_str+"st="+st);
    username=st.nextToken();
    //usetime=Integer.parseInt(String.valueOf((Object)st.nextToken()));
    usetime=st.nextToken();
    //System.out.println("line="+line_number+" username--->"+username);
    //user.put(username,usetime);
        if(!user.containsKey(username))
        {
            user.put(username,usetime);
        
        }
        else
        {
        addtime=Integer.parseInt(String.valueOf(user.get(username)));
        usetime=usetime+addtime;
        user.put(username,usetime);
        }}   //System.out.println("the end:"+username+":"+usetime);
    Enumeration e = user.elements() ;
    while(e.hasMoreElements())
          {
             username=String.valueOf((Object)e.nextElement());
     usetime=(String)user.get(username);
     System.out.println("username:"+username);
             System.out.println("time:"+usetime);
             
      }
    System.out.println("---------end---------");
    ds=null;
    }
    catch(Exception e)
    {
       System.out.println("file error:"+e);
    }
    }
    }
      

  3.   

    多谢各位高人的指点!非常感谢!但是我的目的是要提取fee.txt的第一个串和最后一个串!!fee.txt如下:
    ywg       sli8     202.96.34.100    Fri Jul 20 23:51 - 00:18  (00:27) 1632 
    ywg       tty8     202.96.34.100    Fri Jul 20 23:51 - 23:51  (00:00) 4 
    mbm       sli3     168.160.229.97   Fri Jul 20 23:45 - 09:14  (09:29) 34141 
    mbm       sli3     168.160.229.97   Fri Jul 20 23:40 - 23:45  (00:05) 327 
    mbm       tty3     168.160.229.97   Fri Jul 20 23:40 - 23:40  (00:00) 3 
    xinxin    sli7     168.160.229.97   Fri Jul 20 23:34 - 23:36  (00:01) 82 
    xinxin    tty7     168.160.229.97   Fri Jul 20 23:34 - 23:34  (00:00) 4 
      

  4.   

    这个问题虽说我已实现,但总觉得方法太苯,既就是将其他单字都付给某些STRING,但不显示出来!
    我并没有糊弄人,哪个问题的分我已给过啦,我也想从不同人的程序中学习高深的编程思路,还望各位高人谅解!!谢谢!!