• 字符统计


    这次实验主要是针对文本中单词的读取,主要用到了以下知识:

    Bufferedreader类实现文本读入,拆分,String类下的split函数实现单词分割。

    建立Map类,实现统计功能。

    不排序时使用迭代器进行输出,排序时使用List接口,再使用Collections下的sort函数进行排序,利用循环进行遍历输出

    List是一个接口,ArrayList是一个类,面向接口编程;

    文件的读入,文件转化为文字,再把文字缓冲读入;

    代码:

    import java.io.*;
    import java.util.*;
    public class treat {
    
        public static void main(String[] args) {
            Map<String,Integer> map=new HashMap<String,Integer>();
            try {
                File file=new File("/Users/lgh/Desktop/horrypotter.txt");
                BufferedReader read=new BufferedReader(new FileReader(file));
                String str;
                while((read.readLine())!=null) {
                    str=read.readLine();
                    String[] strsplit=str.split("\W+");
                    for(int i=0;i<strsplit.length;i++) {
                        if(map.containsKey(strsplit[i])) {
                            int a;
                            a=map.get(strsplit[i]);
                            map.put(strsplit[i],a+1);
                        }else {
                            map.put(strsplit[i],1);
                        }
                    }
                }
                Iterator<Map.Entry<String,Integer>> iterator=map.entrySet().iterator();
                double qwe=map.size();
                /*while(iterator.hasNext()) {
                    Map.Entry<String,Integer> entry=iterator.next();
                    System.out.printf("%s:%d  %.2f
    ",entry.getKey(),entry.getValue(),entry.getValue()/qwe);
                }*/
            }
            catch(Exception e){
                System.err.println(e);
            }
            List<Map.Entry<String,Integer>> list=new ArrayList<>(map.entrySet());
            Collections.sort(list, new Comparator<Map.Entry<String, Integer>>(){
                @Override
                public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
                    return o2.getValue().compareTo(o1.getValue());
                }
            });
            for(Map.Entry<String,Integer> a:list){
                System.out.println(a.getKey()+":"+a.getValue());
            }
    
        }
    
    }
    
  • 相关阅读:
    python之路_socketserver模块
    java 字符串String操作工具类
    maven常用插件
    查杀oracle锁表
    正则表达式汇总
    javascript 数组操作
    javascript中sleep等待实现
    js获取服务端IP及端口及协议
    log4j中的MDC和NDC
    如何设置(修改)jetty(maven插件maven-jetty-plugi)的端口
  • 原文地址:https://www.cnblogs.com/ljpljm/p/12152137.html
Copyright © 2020-2023  润新知