单词统计作业

 1 package j;
 2 
 3     import java.io.BufferedReader;
 4     import java.io.BufferedWriter;
 5     import java.io.FileReader;
 6     import java.io.FileWriter;
 7     import java.io.IOException;
 8     import java.util.Iterator;
 9     import java.util.TreeMap;
10     import java.util.regex.Matcher;
11     import java.util.regex.Pattern;
12     public class lolo{
13 
14         public static void main(String[] args) throws IOException {
15             String addr="C:/cjf/123.txt"; 
16             BufferedReader bufr = new BufferedReader(new FileReader(addr));
17             StringBuffer sbuf = new StringBuffer();
18             String line = null;
19             while ((line = bufr.readLine()) != null) {
20                 sbuf.append(line);
21             }
22             bufr.close();
23             Pattern expression = Pattern.compile("[a-zA-Z]+");
24             String str1 = sbuf.toString().toLowerCase();
25             Matcher matcher = expression.matcher(str1);
26             TreeMap myTreeMap = new TreeMap();
27             int n = 0;
28             Object word = null;
29             Object num = null;
30             while (matcher.find()) {
31                 word = matcher.group();
32                 n++;
33                 if (myTreeMap.containsKey(word)) {
34                     num = myTreeMap.get(word);
35                     Integer count = (Integer) num;
36                     myTreeMap.put(word, count.intValue() + 1);
37                 } else {
38                     myTreeMap.put(word, new Integer(1));
39                 }
40             }
41             System.out.println("文章内容如下:");
42             System.out.println(str1);
43             System.out.println("统计分析如下:");
44             System.out.println("文章中单词总数:" + n+"个");
45             System.out.println("具体的信息在当前目录的lwl.txt文件中");
46             BufferedWriter bufw=new BufferedWriter(new FileWriter("C:/cjf/456.txt"));
47             Iterator iter=myTreeMap.keySet().iterator();
48             Object key=null;
49             bufw.write("文件来自:"+addr+"内容如下:");
50             bufw.write(sbuf.toString());
51             bufw.newLine();
52             while(iter.hasNext()){
53                  key=iter.next();
54                  System.out.println(key+":"+myTreeMap.get(key));
55                  
56                  bufw.write((String)key+":"+myTreeMap.get(key));
57                  bufw.newLine();
58             }
59             bufw.write("统计分析如下:");
60             bufw.write("文章中单词总数:" + n+"个");
61             bufw.newLine();
62             bufw.write("文章中不同单词总数:" + myTreeMap.size()+"个");
63             bufw.close();
64         
65 }}

 思路:在程序外建两个写英文段落的txt文档,用于程序内访问使用,中间的核心代码参考了网上的方法;

感想:建立文档很容易,在程序中使用也参考资料就很容易掌握,关键是中间的核心操作代码参考了网上的代码,虽然是看懂了,但还是缺乏自己思考的能力,以后还是要练习。

原文地址:https://www.cnblogs.com/cuijunfeng/p/9775463.html