N個任務掌握java系列之統計一篇文章中單詞出現的次數


問題:統計一篇文章中單詞出現的次數

思路:

(1)將文章(一個字符串存儲)按空格進行拆分(split)后,存儲到一個字符串(單詞)數組中。

(2)定義一個Map,key是字符串類型,保存單詞;value是數字類型,保存該單詞出現的次數。

(3)遍歷(1)中得到的字符串數組,對於每一個單詞,考察Map的key中是否出現過該單詞,如果沒出現過,map中增加一個元素,key為該單詞,value為1(第一次出現);

如果,在map的key中發現了該單詞,則通過key找到對應的value(單詞出現的次數),將該value加1,再次保存回map。

(4)遍歷(3)中得到的map,輸出key(單詞)及對應的value(次數)。

demo代碼如下:

import java.util.HashMap;
import java.util.Iterator;

public class Has {
  // 統計單詞出現的次數
    public static String StatList(String str) {
   StringBuffer sb = new StringBuffer();
   HashMap<String ,Integer> has = new HashMap<String ,Integer> (); // 打開一個哈希表
   String[] slist = str.split(" ");
   for (int i = 0; i < slist.length; i++) {
         if (!has.containsKey(slist[i])) { // 若尚無此單詞
                 has.put(slist[i], 1);
         } else {//如果有,就在將次數加1
        	 	Integer nCounts = has.get(slist[i]);
                 has.put(slist[i],nCounts+1 );
        }
     }
//遍歷map
     Iterator iterator = has.keySet().iterator();
      while(iterator.hasNext()){
             String word = (String) iterator.next();
             sb.append("單詞:").append(word).append(" 次數").append(has.get(word)).append("\n");
      }
      return sb.toString();
}
 
public static void main(String[] args) {
        String s = new String("You are the mananger of an office supplies company. A colleague has received a letter compaining about an order for office furniture. She has left the letter for you to answer and has written some notes on it.");
        System.out.println(StatList(s));
}
}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM