https://gitee.com/WoShiLiangChaoWeiDeShiYou/PersonalProject-Java/tree/master/wordcountjavascript
PSP2.1 | 我的開發流程 | 預估耗費時間(分鐘) | 實際耗費時間(分鐘) |
---|---|---|---|
Planning | 計劃 | 30 | 50 |
· Estimate | 明確需求和其餘相關因素,估計每一個階段的時間成本 | 30 | 60 |
Development | 開發 | 100 | 300 |
· Analysis | 需求分析 (包括學習新技術) | 50 | 100 |
· Design Spec | 生成設計文檔 | 60 | 80 |
· Design Review | 設計複審 | 40 | 50 |
· Coding Standard | 代碼規範 | 40 | 60 |
· Design | 具體設計 | 60 | 150 |
· Coding | 具體編碼 | 20 | 60 |
· Code Review | 代碼複審 | 30 | 0 |
· Test | 測試(自我測試,修改代碼,提交修改) | 0 | 0 |
Reporting | 報告 | 20 | 0 |
· | 測試報告 | 15 | 0 |
· | 計算工做量 | 30 | 0 |
· | 並提出過程改進計劃 | 0 | 0 |
一、本題我選用的編程語言是Java
二、要統計txt文件中單詞數目,就要對txt文件的內容進行讀取,使用流,就寫了一個;須要對讀取的數據內容進行判別分析,單詞、空格、字符、數字等; 對於重複出現的單詞進行統計次數;無論大小寫仍是單詞等都要進行統計,最後對每種字符進行分類和統計輸出;這就用到了Java語言對字符串判斷的知識點和分類統計的知識點
三、對於編碼的設計,我先對類進行了劃分,而後纔開始編碼,我的以爲這樣比較有效率
四、還有一點就是遇到問題時怎麼解決,遇到的問題大部分都是上百度查了而後本身理解以後進行嘗試,嘗試了不少不少遍最終仍是成功了,說明堅持就是勝利!java
一、劃分的類:git
import java.util.Map; public class Word{ private int wordnumber=0; private int charnumber=0; private int line=0; private Map<String,Integer> wordcount; String text; public Word(String text) { this.text = text; } public int getWordnumber() { String str=text; String[] words=str.split("\\s*[^0-9a-zA-Z]+"); for(String s:words) { if(s.matches("[a-zA-Z]{4,}[a-zA-Z0-9]*")) { wordnumber++; } } return wordnumber; } public int getCharnumber() { for(int i=0;i<text.length();i++) { char c=text.charAt(i); if(c > 31 && c < 127 ||c == 10) { charnumber++; } } return charnumber; } public int getLine() { String[] lines=text.split("\r\n"); for(int i=0;i<lines.length;i++) { if(lines[i].trim().length()!=0) { line++; } } return line; } public Map getWordcount() {//統計每一個單詞出現次數 String []wordnum=text.split("\\s"); for(int i=0;i<wordnum.length;i++) { if(wordnum[i].length()>=4) { char c; for (int j = 0; j < 4; j++) { c = wordnum[i].charAt(j); if (!(c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z')) { if(wordcount.get(wordnum[i]) != null) { wordcount.put(wordnum[i], wordcount.get(wordnum[i])+1); } else { wordcount.put(wordnum[i], 1); } } } } } return wordcount; } }
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class File_rw { public String readToString(String filepath) throws IOException { File file =new File(filepath); FileInputStream files=new FileInputStream(file); Long filelength =file.length(); byte[] by =new byte[filelength.intValue()]; StringBuffer buf = new StringBuffer(); if(file.isFile()&&file.exists()) { if(files.read(by)!=-1) { buf.append(new String(by)); } }files.close(); return buf.toString(); } }
我的項目的難度確實有些大,本身要作一個完美的項目更是難上加難,思考了好久纔開始着手寫代碼,而且實現的功能還十分簡陋。好比對於字符單詞處理若是使用正則表達式。因爲本身以前沒有好好學習,如今才以爲書到用時方恨少的感受。不少代碼包括一些基礎簡單的都要上網查資料或者諮詢同窗。本身以後會更認真更努力去完善本身的不足,爭取進步正則表達式