博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java上机
阅读量:4591 次
发布时间:2019-06-09

本文共 2003 字,大约阅读时间需要 6 分钟。

package wordcont;import java.io.BufferedReader;import java.io.FileReader;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;import java.util.Map;import java.util.TreeMap;import java.util.regex.Matcher;import java.util.regex.Pattern;public class wordcont {    public static void main(String[] args) throws Exception     {        BufferedReader reader = new BufferedReader(new FileReader("D://123.txt"));        StringBuffer buffer = new StringBuffer();        String line = null;        while ((line = reader.readLine()) != null) {            buffer.append(line);        }        reader.close();        Pattern expression = Pattern.compile("[a-zA-Z]+");// 定义正则表达式匹配单词        String string = buffer.toString();        Matcher matcher = expression.matcher(string);//        Map
map = new TreeMap
(); String word = ""; int times = 0; while (matcher.find()) {// 是否匹配单词 word = matcher.group();// 得到一个单词-树映射的键 if (map.containsKey(word)) {// 如果包含该键,单词出现过 times = map.get(word);// 得到单词出现的次数 map.put(word, times + 1); } else { map.put(word, 1);// 否则单词第一次出现,添加到映射中 } } /* * 核心:如何按照TreeMap 的value排序而不是key排序.将Map.Entry放在集合里, 重写比较器,在用 * Collections.sort(list, comparator);进行 排序 */ List
> list = new ArrayList
>( map.entrySet()); /* * 重写比较器 * 取出单词个数(value)比较 */ Comparator
> comparator = new Comparator
>() { public int compare(Map.Entry
left, Map.Entry
right) { return (left.getValue()).compareTo(right.getValue()); } }; Collections.sort(list, comparator);// 排序 // 打印最多五个 int last = list.size() - 1; for (int i = last; i > last - 6; i--) { String key = list.get(i).getKey(); Integer value = list.get(i).getValue(); System.out.println(key + " :" + value); } }}

  

转载于:https://www.cnblogs.com/Evak/p/9775210.html

你可能感兴趣的文章
C#设计模式(1)——单例模式
查看>>
c语言warning总结
查看>>
Python科学计算工具包
查看>>
6-12 SVM小结
查看>>
LeetCode Two City Scheduling
查看>>
14_新闻客户端_数据准备完成
查看>>
fseek()
查看>>
项目心得--合格的技术负责人
查看>>
STM32F407Discovery开发板使用环境搭建
查看>>
puppeteer 中国区的使用
查看>>
深度学习之 seq2seq 进行 英文到法文的翻译
查看>>
关于我系列
查看>>
(笔记):初始化列表之初始化顺序
查看>>
如何将一整个文件夹提交到github远程仓库
查看>>
周总结11
查看>>
bootstrap中栅格系统的原理
查看>>
webpack基础入门
查看>>
Android为TV端助力(转载)
查看>>
浏览器中开发人员工具快速找到dom元素绑定那些JS事件
查看>>
js数据结构与算法——集合
查看>>