日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WordCount

發(fā)布時間:2025/6/17 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WordCount 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

李成洪的github

一..需求說明

1.基本需求

? ?輸入:txt文件

? ?輸出:將txt文件中的字符數(shù)、單詞數(shù)、行數(shù),統(tǒng)計結(jié)果以指定格式輸出到默認(rèn)文件

2.輸入輸出以及計算規(guī)定

? ? ? wc.exe -c file.c ? ? ? ? 返回文件 file.c 的字符數(shù)wc.exe -w file.c

? ? ? wc.exe -w file.c ? ? ? ?返回文件 file.c 的單詞總數(shù)

? ? ? wc.exe -l file.c ? ? ? ? 返回文件 file.c 的總行數(shù)

? ? ? wc.exe -o outputFile.txt???? //將結(jié)果輸出到指定文件outputFile.txt

? ? ?空格,水平制表符,換行符,均算字符。

? ? ?由空格或逗號分割開的都視為單詞,且不做單詞的有效性校驗,例如:thi#,that視為用逗號隔開的2個單詞。

? ? ?-c, -w, -l參數(shù)可以共用同一個輸入文件,形如:wc.exe –w –c file.c 。

? ? ?-o 必須與文件名同時使用,且輸出文件必須緊跟在-o參數(shù)后面,不允許單獨使用-o參數(shù)。?

3.PSP

PSP2.1

PSP階段

預(yù)估耗時

(分鐘)

實際耗時

(分鐘)

Planning

計劃

400

?

· Estimate

· 估計這個任務(wù)需要多少時間

350

?

Development

開發(fā)

50

?60

· Analysis

· 需求分析 (包括學(xué)習(xí)新技術(shù))

40

90

· Design Spec

· 生成設(shè)計文檔

?30

?60

· Design Review

· 設(shè)計復(fù)審 (和同事審核設(shè)計文檔)

?30

?30

· Coding Standard

· 代碼規(guī)范 (為目前的開發(fā)制定合適的規(guī)范)

?20

?30

· Design

· 具體設(shè)計

?30

40

· Coding

· 具體編碼

?60

120

· Code Review

· 代碼復(fù)審

?30

?20

· Test

· 測試(自我測試,修改代碼,提交修改)

?40

60

Reporting

報告

?20

80

· Test Report

· 測試報告

?20

?0

· Size Measurement

· 計算工作量

?370

?

· Postmortem & Process Improvement Plan

· 事后總結(jié), 并提出過程改進(jìn)計劃

?30

?

?

合計

?400

?590

4.思路

? 通過java的輸入輸出流讀寫文件,遍歷文件中的每一個字符判斷其中的空格數(shù),換行健,逗號,分好的數(shù)目來統(tǒng)計。

5.類

? 1.Util 工具包類提供文件的讀寫

? ?2.WordCount類 判斷文件中的字符數(shù),行數(shù),單詞數(shù)

? ?3.CountPrintl類 將結(jié)果打印到指定的文件中

? ?4.Test類 單元測試類

? ?5.Client 客戶端?

5.關(guān)鍵代碼

??

package Util; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; import java.io.Writer; public class WDUtil {//工具類 負(fù)責(zé)讀寫工具/*讀取文件* FilePath 文件的路徑* 返回 StringBuffer*/public String fielRead(String FilePath) {File file=new File(FilePath);StringBuffer sb=new StringBuffer();try {FileInputStream fis=new FileInputStream(file);InputStreamReader reader = new InputStreamReader(fis, "UTF-8");while(reader.ready()){sb.append((char)reader.read());}reader.close();fis.close();} catch (Exception e) {e.printStackTrace();}return sb.toString();}/** FilePath 保存文件的路徑* txt 保存的內(nèi)容*/public void fileWrite(String FilePath,String txt){File file=new File(FilePath);try {FileOutputStream fop=new FileOutputStream(file);OutputStreamWriter writer =new OutputStreamWriter(fop, "utf-8");writer.write(txt);writer.close();fop.close();} catch (Exception e) {// TODO Auto-generated catch block e.printStackTrace();}}}

?

package CountWord;import Util.WDUtil;public class CountWord {WDUtil util = new WDUtil();// 讀寫文件的工具對象/** path 文件的路徑 返回文件的總字?jǐn)?shù)*/public int countChar(String path) {int charNum = 0;String words = util.fielRead(path);charNum = words.length();return charNum;}/** path 文件的位置 返回文件中空格的數(shù)目*/public int countWord(String path) {int wordNum = 0;String words = util.fielRead(path);for (int i = 0; i < words.length() - 1; i++)// 最后一個字母特殊考慮 {if (words.charAt(i) == ' ' || words.charAt(i) == ';' || words.charAt(i) == ',' || words.charAt(i) == '.')// 出現(xiàn)空格逗號句號分號都算一個單詞 {wordNum++;}}wordNum++;// 最后一個不管是什么字母結(jié)尾,單詞數(shù)都加1return wordNum;}public int countEnter(String path) {int wordNum = 0;String words = util.fielRead(path);for (int i = 0; i < words.length(); i++) {if (words.charAt(i) == '\n') {wordNum++;}}return wordNum + 1;} } package CountWord;import java.util.Scanner;import Util.WDUtil;/** 根據(jù)輸入的命令獲取操作,和文件路徑最后計算結(jié)果保存到路徑中*/ public class PrintfCount {CountWord cWord=new CountWord();WDUtil wdUtil=new WDUtil();int charNum=0;//字符的數(shù)目int wordNum=0;//單詞的int enterNum=0;//行數(shù)public void Print(String[] args){String txt=null;String path=args[args.length-1];for(int i=0;i<args.length;i++){String operation=args[i];switch(operation){case "-c"://計算字符數(shù) {charNum=cWord.countChar(path);System.out.println("字符數(shù)為:"+charNum);break;}case "-w"://計算單詞數(shù) {wordNum=cWord.countWord(path);System.out.println("單詞數(shù)為:"+wordNum);break;}case "-l"://計算行數(shù) {enterNum=cWord.countEnter(path);System.out.println("行數(shù)為:"+enterNum);break;}case "-o":{String result=wdUtil.fielRead("result.txt");wdUtil.fileWrite(args[i+1],result);break;}}}txt="字符的個數(shù)為"+charNum+"\n單詞的個數(shù)為"+wordNum+"\n行數(shù)為"+enterNum;wdUtil.fileWrite("result.txt", txt);}}

?

測試總結(jié):1.我不知道table在計算的時候是算一個字符還是多少個,我電腦上算的3個

? ? ? ? ? ? ? ? ? 2.在計算單詞時我覺得以分號,逗號,句號,空格結(jié)尾都應(yīng)該算一個單詞

? ? ? ? ? ? ? ? ? 3.在文章結(jié)尾應(yīng)當(dāng)默認(rèn)增加一個單詞

7.相關(guān)鏈接

? ?有關(guān)博客的使用和排版,:http://www.cnblogs.com/math/p/se-tools-001.html。?

? ? 有關(guān)Git的使用,廖雪峰的官方網(wǎng)站。? ? ??

8.最后

? ?非常感謝老師給我們的引導(dǎo),我一直知道git很神奇也很好用。但是迫于害怕和沒有機(jī)會,一直沒有實踐過,謝謝老師給我的資料和實踐的機(jī)會。本次博客寫的有點匆忙,有不足之處請多多指教。

?

轉(zhuǎn)載于:https://www.cnblogs.com/c-lover/p/9694191.html

總結(jié)

以上是生活随笔為你收集整理的WordCount的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。