我想做一个程序,要实现的功能是,输入一篇英文,然后统计一下单词的出现频率,我没有一点思路啊,有高手指教一下啊,谢谢了

解决方案 »

  1.   

    1. 分割字串 得到一個數組
    2. 用MAP做統計 的到一個 單字 次數 的 MAP
    3. 輸出
      

  2.   

    1. 分割字串
    2. 統計 用MAP
    3. 輸出
      

  3.   

    正常人的想法就是遍历所有单词,出现的单词作为键添加到Map里面,如果Map里有这个键,就取出对应的值加1再放进去
      

  4.   

    回了都不見了...
    1. 分割字串 用split得到一個數組
    2. 用Map統計, 得到一個 單字 次數的Map
    3. 輸出。
      

  5.   

    import java.util.*;
    public class test{
    public static void main(String[] arg)
    {
    String str="How do you do what are you are what";
    String[] st=str.split(" ");
    String word=null;
    int m=0;
              ArrayList<String> al=new ArrayList<String>();
      for(String s:st)
    {
      al.add(s);
    }
    Collections.sort(al);
      LinkedHashSet<String> hs=new LinkedHashSet<String>();
      HashMap<String,Integer> hm=new HashMap<String,Integer>();
              for(int i=0;i<al.size();i++)
      hs.add(al.get(i));
      Iterator it=hs.iterator();
      word=(String)it.next();
     
    for(int i=1;i<al.size();i++)
    {
    m++;
                  if(!(word.equals(al.get(i))))
    {
     hm.put(word,m);
            word=(String)it.next();
    m=0;
    }
    }
    hm.put(word,m+1);
    Set ks=hm.keySet();
    Iterator it1=ks.iterator();

    while(it1.hasNext())
    {
    String key=(String)it1.next();
        Integer value=(Integer)hm.get(key);
    System.out.println(key+":"+value);
    }
    }
    }
    输出:
    are:2
    what:2
    you:2
    do:2
    How:1