要求程序可以作出基本的單詞頻率的統計,也能夠統計出文本的全部單詞數;程序功能強大,能分析較大的文本;操做簡介易懂。一目瞭然。java
基本功能:能夠進行基本的詞頻統計,實現中英文分別統計
擴展功能:對於具體的文本甚至網絡文本進行分析git
public class WordCount { public static void main(String[] args) throws FileNotFoundException,IOException{ try{ //使用流的方法讀取文件 BufferedReader br = new BufferedReader(new FileReader( "F:\\javademo\\softwar_pro\\MRDemo\\words.txt")); //使用TreeMap方法自動將結果按Integer列 TreeMap<String,Integer> treemap = new TreeMap<String,Integer>(); //用來存儲讀取的單詞 String readLine = null; //記錄單詞的總數 int count = 0; while((readLine = br.readLine())!=null){ //將字母排序爲小寫 readLine = readLine.toLowerCase(); //將全部單詞以大寫輸出 //readLine = readLine.toUpperCase(); //過濾出只含有字母的字段 String[] str = readLine.split("[\\s]"); //過濾掉多個空格,「+」表明多個空格的意思 for(int i = 0;i<str.length;i++){ count++; String word = str[i].trim();//trim()用來去掉字符串首尾的空格 if(treemap.containsKey(word)){//判斷此映射是否包含指定鍵的映射關係 treemap.put(word, treemap.get(word)+1); }else{ treemap.put(word, 1); } } }
System.out.println("按字典的輸出順序爲:"); System.out.println("單詞:"+"\t"+"單詞出現的頻率:" ); /** * 使用迭代器遍歷取值: * Iterator是迭代器 * treemap.entrySet()是把TreeMap類型的數據轉換成集合類型 * treemap.entrySet().iterator()獲取集合的迭代器 */ Iterator<Map.Entry<String,Integer>> it = treemap.entrySet().iterator(); //判斷是否存在下一個單詞 while(it.hasNext()){ Map.Entry<String, Integer> entry = it.next();//獲取map中每個鍵值 //輸出結果 System.out.println(entry.getKey()+" "+entry.getValue()); br.close();//關閉流 } System.out.println("單詞總數爲:"+count+"個"); }catch(FileNotFoundException e){//異常處理 e.printStackTrace(); }catch(IOException e){ e.printStackTrace(); } } }
經過本次實踐,讓我深入認識到軟件開發的不易,單人操做很是困難,須要有幾個甚至一個團隊來合做完成;
軟件開發過程當中須要嚴謹的設計與計劃,不然將會浪費不少的時間,有可能致使推倒重來,浪費財力物力;
經過開發過程我也認識到基礎知識的嚴重不足,將會在之後的學習中彌補不足。github
PSP2.1 | 任務內容 | 計劃共完成須要的時間(min) | 實際完成須要的時間(min) |
---|---|---|---|
Planning | 計劃 | 30 | 42 |
Estimate | 估計這個任務須要多少時間,並規劃大體工做步驟 | 30 | 42 |
Development | 開發 | 700 | 1088 |
Analysis | 需求分析 (包括學習新技術) | 120 | 150 |
Design Spec | 生成設計文檔 | 50 | 50 |
Design Review | 設計複審 (和同事審覈設計文檔) | 20 | 15 |
Coding Standard | 代碼規範 (爲目前的開發制定合適的規範) | 30 | 30 |
Design | 具體設計 | 120 | 60 |
Coding | 具體編碼 | 240 | 600 |
Code Review | 代碼複審 | 60 | 80 |
Test | 測試(自我測試,修改代碼,提交修改) | 60 | 120 |
Reporting | 報告 | 55 | 100 |
Test Report | 測試報告 | 20 | 32 |
Size Measurement | 計算工做量 | 10 | 10 |
Postmortem & Process Improvement Plan | 過後總結 ,並提出過程改進計劃 | 25 | 60 |