// 输入一个英语句子,把里面每个单词出现的次数统计出来 package ch22; import java.util.Enumeration; import java.util.Hashtable; import java.util.StringTokenizer; import javax.swing.JFrame; import javax.swing.JOptionPane; public class Exec22_10 extends JFrame ... { public Exec22_10() ...{ String out = "", output = ""; Hashtable ht = new Hashtable(); String str = JOptionPane.showInputDialog("输入一个英语句子"); StringTokenizer st = new StringTokenizer(str, " ,.?!"); ht.clear(); // 存在hash表里的数据,一定要Enumeration才可以掉出来的 while (st.hasMoreTokens()) ...{ out = st.nextToken();// 无符号单词 for (int i = 0; i < out.length(); i++) ...{ output = String.valueOf(out.charAt(i)); Object count = ht.get(output); if (count == null) ...{ count = (Integer) 1; ht.put(output, count); } else ...{ int temp = ((Integer) count).intValue(); ht.put(output, new Integer(temp + 1)); } } System.out.println("单词 出现次数 "); // 这个是把村在hash表里的东西取出来 Enumeration items = ht.keys();// 返回此哈希表中的键的枚举,就是把所有的额键给列举出来 while (items.hasMoreElements()) ...{ String key = (String) (items.nextElement()); Object val = ht.get(key); System.out.println(key + " " + val + " "); } } } public static void main(String[] args) ...{ Exec22_10 fegor = new Exec22_10(); fegor.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fegor.setVisible(true); fegor.setSize(600, 460); }} /**/ /*Object count;ht.put(Object,Object)可以这样放ht.put(Object,count)加入我想把count+1后再放进去,不能直接加定义个第三者int temp;先把count强制转换成Integer,然后再取出Integer里面的值((Integer)count).intValue();把取出来的值赋给temptemp = ((Integer)count).intValue();新建一个Integer对象,Integer fegor = new Integer(temp+1);然后放到里面去。ht.put(Object,fegor);Object对象要想得到int值,就必须强制抓换取值。也就是说,int数要想坐到Object的位置上,必须是Integer对象。只要是这样的就是强制转换(Integer)obj;这样说明是一个Integer对象,new的一个Integer(temp)*/