📄 wordcount.java
字号:
/*
******************************
* File Name: Counter.java
* Author:wangch
* Function Description:counter class
*
*****************************
*/
package com.io;
import java.util.*;
import java.io.*;
class Counter
{
private int i = 1;
int read() { return i;}
void increment() { i++;}
}
class WordCount {
private FileReader file;
private StreamTokenizer st;
//A TreeMap keeps keys in sorted order:
private TreeMap count = new TreeMap();
WordCount(String fileName)
throws FileNotFoundException {
try{
file = new FileReader(fileName);
st = new StreamTokenizer(
new BufferedReader(file));
countWords();
} catch(FileNotFoundException e) {
System.out.println(
"Cound not open " + fileName);
throw e;
}
}
void clearup() {
try{
file.close();
} catch (IOException e) {
System.out.println(
"file.close() unsuccessful");
}
}
void countWords() {
try{
while(st.nextToken()!=
StreamTokenizer.TT_EOF) {
String s;
switch(st.ttype) {
case StreamTokenizer.TT_EOF :
s = new String("EOL");
break;
case StreamTokenizer.TT_NUMBER :
s = Double.toString(st.nval);
break;
case StreamTokenizer.TT_WORD :
s = st.sval;
break;
default:
s= String.valueOf((char)st.ttype);
}
if(count.containsKey(s))
((Counter)count.get(s)).increment();
else
count.put(s,new Counter());
}//end of while
}catch(IOException e) {
System.err.println( "st.nextToken() unsuccessful");
}
}
Collection values() {
return count.values();
}
Set keySet() { return count.keySet();}
Counter getCounter(String s) {
return (Counter)count.get(s);
}
public static void main(String [] args)
throws FileNotFoundException {
WordCount wc =
new WordCount(args[0]);
Iterator keys =wc.keySet().iterator();
while(keys.hasNext()) {
String key = (String)keys.next();
System.out.println(key + ":" +wc.getCounter(key).read());
}
wc.clearup();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -