標籤:
開發語言:Java
開發工具:UltraEdit
小夥伴部落格:http://www.cnblogs.com/hyating/
github地址:https://github.com/JUNYU217/2016-03-08
|| 為月末了,網費欠了...很抱歉的拖了那麼久的作業 QAQ ||
------個人小結------
通過這次作業,我學習了檔案流的使用,也感謝小夥伴的幫忙,給了我構思的架構
------作業要求------
基於作業3的結果,讀取一個較小的文字檔,統計該檔案中的單詞的頻率,並將統計結果輸出到目前的目錄下的 Result1.txt 檔案。 (第一階段初稿完成該要求)
- 首先按照頻率由高到低排序
- 頻率一樣的詞, 按照字典順序排序
- 詳情戳這!
------程式編寫------
這次的作用基於第三次作業上有所改動,具體方法在代碼中體現
首先感謝我的舍友苗中鋒提供給我的排序演算法,我一直糾結了好久,通過鍵排序,通過值排序一直達不到排序的要求
List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());Collections.sort( list, new Comparator<Map.Entry<String, Integer>>(){ public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { if(o1.getValue()<o2.getValue())return 1;else if(o1.getValue()>o2.getValue())return -1;elsereturn(o1.getKey().compareTo(o2.getKey()));}} );
排序後,通過java中 io 提供的方法完成了輸出
File outfile = new File("D:\\Software\\SorfwareTest\\Result.txt"); try { if (file.exists()) outfile.delete(); BufferedWriter bw = new BufferedWriter(new FileWriter(outfile)); StringBuffer out = new StringBuffer(); for(Map.Entry<String,Integer> mapping:list) { out.append(mapping.getKey()+":"+mapping.getValue()+"\r\n"); } bw.write(out.toString()); bw.flush(); bw.close(); } catch (IOException e) { e.printStackTrace(); });
------程式運行------
未編譯前
在編譯和運行後產生了 Result.txt
開啟Result.txt,結果是正確的~
探索軟體工程道路上的我 IV (Θ?Θ#)