20200917-2 词频统计
此次作业的要求参见[https://edu.cnblogs.com/campus/nenu/2020Fall/homework/11206]
代码及版本控制
我的代码地址:https://github.com/18244088809/test
coding.net:https://e.coding.net/qqq2/wf/wf.git
词频统计 SPEC
老五在寝室吹牛他熟读过《鲁滨逊漂流记》,在女生面前吹牛热爱《呼啸山庄》《简爱》和《飘》,在你面前说通读了《战争与和平》。但是,他的四级至今没过。你们几个私下商量,这几本大作的单词量怎么可能低于四级,大家听说你学习《构建之法》,一致推举你写个程序名字叫wf,统计英文作品的单词量并给出每个单词出现的次数,准备用于打脸老五。
希望实现以下效果。以下效果中数字纯属编造。
参考杨萍师姐的代码,非自己实现。
功能1 小文件输入。 为表明程序能跑,结果真实而不是迫害老五,请他亲自键
盘在控制台下输入命令。
为了评估老五的词汇量而不是阅读量,total一项中相同的单词不重复计数数,出现2
次的very计数1次。
因为用过控制台和命令行,你早就知道,上面的">"叫做命令提示符,是操作系统的一部分,而不是你的程序的一部分。
代码:
if ("-s".equals(args[0])){
String path = "D:/redirect/" + args[1] + ".txt";
try {
textCount(path);
} catch (Exception ex) {
System.out.println("请重新输入");
}
}
功能2 支持命令行输入英文作品的文件名,请老五亲自录入。
测试1:
测试2:
功能3 支持命令行输入存储有英文作品文件的目录名,批量统计。
代码:
else if ("-f".equals(args[0])){
String path1 = args[1];
File file = new File(path1);
if (file.isDirectory()) {
File[] filelist = file.listFiles();
for (File filePath : filelist) {
try {
String s = filePath.getPath();
System.out.println(filePath.getName());
textCount(s);
} catch (Exception ex) {
System.out.println("请重新输入");
}
}
}
}
功能4 从控制台读入英文单篇作品,这不是为了打脸老五,而是为了向你女朋
友炫酷,表明你能提供更适合嵌入脚本中的作品(或者如她所说,不过是更灵活
的接口)。
代码:
else if("-s".equals(args[0])){
try {
TxtCount();
} catch (Exception ex) {
System.out.println("请输入正确的命令");
}
}
public static void TxtCount() throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));// 从字符输入流中读取文本并缓冲字符
List<String> list = new ArrayList<String>(); // 存储过滤后单词的列表
String readLine = null;
while ((readLine = br.readLine()) != null) {
String[] wordsArr = readLine.split("[^a-zA-Z]"); // 过滤掉除字母以外的字符
for (String word : wordsArr) {
if (word.length() != 0) { // 去除长度为0的行
list.add(word);
}
}
}
br.close();
WordCount(list); // 单词量统计
}
PSP