统计英文字母

     设计思路:

首先读取英文文件,然后每次读取一个字母, 判断单词是否存在于word ,每次读取一个字母直到最后,如果字符为换行。空格,单引号,双引号,逗号,句号 则为一个单词的结束及另一个单词的开始,如果单词在单词链中存在则单词数++,如果不存在则在单词链中添加 然后利用循环语句找到单词链中个数最多的 输出单词链中个数最多的 

        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 Zimu {

        public static void main(String[] args) throws IOException {
            String addr="指定的文本路径"; 
            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);
            TreeMap myTreeMap = new TreeMap();
            int n = 0;
            Object word = null;
            Object num = null; 
            while (matcher.find()) {
                word = matcher.group();
                n++;// 
                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("具体的信息在当前目录的lwl.txt文件中");
            BufferedWriter bufw=new BufferedWriter(new FileWriter("C:/ijm/lwl.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();
        
}
        }

猜你喜欢

转载自www.cnblogs.com/adret/p/9775697.html
今日推荐