码迷,mamicode.com
首页 > 其他好文 > 详细

统计英文字母

时间:2018-10-12 01:36:04      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:intval   case   str1   end   span   .com   当前目录   string   out   

     设计思路:

首先读取英文文件,然后每次读取一个字母, 判断单词是否存在于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();
        
}
        }

 

统计英文字母

标签:intval   case   str1   end   span   .com   当前目录   string   out   

原文地址:https://www.cnblogs.com/adret/p/9775697.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!