zoukankan      html  css  js  c++  java
  • 课堂练习之“单词统计”

     第二阶段:

    package pre.lq;
    //20173522 李秦
    import java.io.*;
    import java.text.DecimalFormat;
    import java.util.*;
    
    public class Tongji 
    {
        public static void main(String [] args) throws Exception
        {
    
            BufferedReader br = new BufferedReader(new FileReader("D:"+File.separator+"第一章.txt"));
    
            StringBuffer sb = new StringBuffer();
            String text =null;
            while ((text=br.readLine())!= null)
            {
                sb.append(text);// 将读取出的字符追加到stringbuffer中
            }
            br.close();  // 关闭读入流
    
            String str = sb.toString().toLowerCase(); // 将stringBuffer转为字符并转换为小写
            String[] words = str.split("[^A-Za-z]+");  // 非单词的字符来分割,得到所有单词
            Map<String ,Integer> map = new HashMap<String, Integer>() ;
    
            for(String word :words)
            {
                if(map.get(word)==null)
                {  // 若不存在说明是第一次,则加入到map,出现次数为1
                    map.put(word,1);
                }
                else
                {
                    map.put(word,map.get(word)+1);  // 若存在,次数累加1
                }
            }
    
            // 排序
            List<Map.Entry<String ,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(map.entrySet());
    
            Comparator<Map.Entry<String,Integer>> comparator = new Comparator<Map.Entry<String, Integer>>() 
            {
                public int compare(Map.Entry<String, Integer> left, Map.Entry<String, Integer> right) 
                {
                    return (left.getValue().compareTo(right.getValue()));
                }
            };
            // 集合默认升序升序
            Collections.sort(list,comparator);
    
            for(int i=0;i<list.size();i++)
            {// 由高到低输出
                DecimalFormat df=new DecimalFormat("0.00");
                String num=df.format((float)list.get(list.size()-i-1).getValue()/list.size()*100);
                System.out.println(list.get(list.size()-i-1).getKey() +":"+num+"%");
            }
    
        }
    }

     运行截图:

  • 相关阅读:
    ubuntu 卸载干净软件(包括配置文件)
    Unable to lock the administration directory (/var/lib/dpkg/) is another process using it?
    linux watch 命令
    [转]如何成为优秀的程序员?
    【转】css浮动元素的知识
    Hierarchical data in postgres
    【转】supervisord使用
    手动安装pip
    zoj1649-Rescue (迷宫最短路径)【bfs 优先队列】
    poj3278-Catch That Cow 【bfs】
  • 原文地址:https://www.cnblogs.com/lq13035130506/p/10785789.html
Copyright © 2011-2022 走看看