?? statwords.java
字號(hào):
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
* 此類(lèi)實(shí)現(xiàn)統(tǒng)計(jì)英文文本中個(gè)單詞出現(xiàn)的頻率
* 此程序中作為分割文本單詞的正則表達(dá)式仍需完善,改進(jìn)
* @author 代國(guó)強(qiáng)
*
* 2009/05/08
*/
public class StatWords {
public static void main(String[] args) {
StatWords sw = new StatWords();
sw.Stat();
}
public void Stat() {
//定義存放統(tǒng)計(jì)結(jié)果的Map
Map<String, Integer> result = new HashMap<String, Integer>();
//接受鍵盤(pán)輸入(要求輸入想要統(tǒng)計(jì)單詞出現(xiàn)頻率的文本的路徑)
System.out.println("請(qǐng)輸入你想要統(tǒng)計(jì)單詞出現(xiàn)頻率的文本的路徑,以回車(chē)確認(rèn)。");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//定義needCountWord:此String對(duì)象為從文本中讀到的文章
String needCountWord = "";
try {
//取得用戶(hù)輸入的文本路徑
String str = br.readLine();
File f = new File(str);
//通過(guò)緩沖流的方式讀出文本中的數(shù)據(jù)并賦值給needCountWord
BufferedReader brr = new BufferedReader(new FileReader(f));
String temp = brr.readLine();
while (temp != null) {
needCountWord += temp;
temp = brr.readLine();
}
} catch (IOException e) {
System.err.println("輸入文本路徑錯(cuò)誤,請(qǐng)檢查");
this.Stat();
}
//得到存放了所有文章中出現(xiàn)了的單詞的String數(shù)組(此數(shù)組中存在重復(fù)的單詞)
String[] wordArg = needCountWord.trim().split("\\s*\\W*\\s*\\n*\\s*\\r*\\s*\\f*\\s+");
//統(tǒng)計(jì)各單詞的出現(xiàn)頻率,Map對(duì)象result中的key為文章中有的單詞,value為此單詞出現(xiàn)的次數(shù)
for (int i = 0; i < wordArg.length; i++) {
if (!result.containsKey(wordArg[i])) {
result.put(wordArg[i], new Integer(1));
} else {
int x = result.get(wordArg[i]);
x++;
result.put(wordArg[i], new Integer(x));
}
}
//遍歷Map 輸出統(tǒng)計(jì)結(jié)果
Set set = result.keySet();
Iterator iter = set.iterator();
String word = "";
while (iter.hasNext()) {
word = (String) iter.next();
System.out.println("單詞 " + word + " 出現(xiàn): " + result.get(word)
+ " 次。");
}
try {
Thread.sleep(30000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -