package test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.TreeMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TestTreeMap {
public static void main(String[] args) throws IOException {
String addr="E:/workspace/test/src/test/english.txt";
BufferedReader bufr = new BufferedReader(new FileReader(addr));
StringBuffer sbuf = new StringBuffer();// 缓冲字符串
String line = null;
while ((line = bufr.readLine()) != null) {
sbuf.append(line);// 追加到缓冲字符串中
}
bufr.close();// 读取结束
Pattern expression = Pattern.compile("[a-zA-Z]+");// 定义正则表达式匹配单词
String str1 = sbuf.toString().toLowerCase();// 转换成小写
Matcher matcher = expression.matcher(str1);// 定义string1的匹配器
TreeMap myTreeMap = new TreeMap();// 创建树映射 存放键/值对
int n = 0;// 文章中单词的总数
Object word = null;// 文章中的单次
Object num = null;// 出现的次数
while (matcher.find()) {// 是否匹配单词
word = matcher.group();
n++;// 单词数加1
if (myTreeMap.containsKey(word)) {// 如果包含该键,单词出现过
num = myTreeMap.get(word);// 得到单词出现的次数
Integer count = (Integer) num;// 强制转换
myTreeMap.put(word, count.intValue() + 1);
} else {
myTreeMap.put(word, new Integer(1));// 否则单词第一次出现,添加到映射中
}
}
System.out.println("文章内容如下:");
System.out.println(str1);
System.out.println("统计分析如下:");
System.out.println("文章中单词总数:" + n+"个");
System.out.println("具体的信息在当前目录的result.txt文件中");
BufferedWriter bufw=new BufferedWriter(new FileWriter("E:/workspace/test/src/test/result.txt"));
Iterator iter=myTreeMap.keySet().iterator();//得到数映射集合的迭代器
Object key=null;
bufw.write("文件来自:"+addr+"内容如下:");
bufw.write(sbuf.toString());
bufw.newLine();
while(iter.hasNext()){
key=iter.next();
System.out.println(key+":"+myTreeMap.get(key));
bufw.write((String)key+":"+myTreeMap.get(key));
bufw.newLine();
}
bufw.write("统计分析如下:");
bufw.write("文章中单词总数:" + n+"个");
bufw.newLine();
bufw.write("文章中不同单词总数:" + myTreeMap.size()+"个");
bufw.close();
}
}
深圳同城快跑 上机试题02:从文本中读取内容,并统计不同英语单词出现的次数,最后输出到新的文本文件
最新推荐文章于 2022-06-02 21:37:18 发布