zoukankan      html  css  js  c++  java
  • 英文单词个数统计及排序

     1 import java.io.*;
     2 import java.util.*;
     3 public class treat {
     4 
     5     public static void main(String[] args) {
     6         Map<String,Integer> map=new HashMap<String,Integer>();
     7         try {
     8             File file=new File("/Users/lilongrong/Desktop/win.txt");
     9             BufferedReader read=new BufferedReader(new FileReader(file));
    10             String str;
    11             while((read.readLine())!=null) {
    12                 str=read.readLine();
    13                 String[] strsplit=str.split("\W+");
    14                 for(int i=0;i<strsplit.length;i++) {
    15                     if(map.containsKey(strsplit[i])) {
    16                         int a;
    17                         a=map.get(strsplit[i]);
    18                         map.put(strsplit[i],a+1);
    19                     }else {
    20                         map.put(strsplit[i],1);
    21                     }
    22                 }
    23             }
    24             Iterator<Map.Entry<String,Integer>> iterator=map.entrySet().iterator();
    25             double qwe=map.size();
    26             /*while(iterator.hasNext()) {
    27                 Map.Entry<String,Integer> entry=iterator.next();
    28                 System.out.printf("%s:%d  %.2f
    ",entry.getKey(),entry.getValue(),entry.getValue()/qwe);
    29             }*/
    30         }
    31         catch(Exception e){
    32             System.err.println(e);
    33         }
    34         List<Map.Entry<String,Integer>> list=new ArrayList<>(map.entrySet());
    35         Collections.sort(list, new Comparator<Map.Entry<String, Integer>>(){
    36             @Override
    37             public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
    38                 return o2.getValue().compareTo(o1.getValue());
    39             }
    40         });
    41         for(Map.Entry<String,Integer> a:list){
    42             System.out.println(a.getKey()+":"+a.getValue());
    43         }
    44 
    45     }
    46 
    47 }

    该程序实现了大文本的单词统计与单词出现次数的排序,具体实现流程如下:

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

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

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

    收获:

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

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

    3、模版类Map<String,Integer>;

    4、重写函数override;

    5、迭代器的使用;

    6、for( :)遍历的使用。

  • 相关阅读:
    linux下通过命令行重启服务,查看id,更改tv密码
    windows渗透相关、hideadmin工具隐藏用户账号、添加隐藏用户
    windows服务隐藏 以及进程隐藏
    nat32 winh命令远程执行难点
    anydesk命令行使用
    html页面,能用鼠标滚轮滑动,但是不能触屏滑动
    Java 全局统一异常捕获
    git 常用操作
    vue v-for强制刷新
    flutter-TextField垂直居中
  • 原文地址:https://www.cnblogs.com/jiaoaoshirenjinbu/p/11809975.html
Copyright © 2011-2022 走看看