博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
仅供参考,勿要模仿
阅读量:4918 次
发布时间:2019-06-11

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

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 WordsCounter {	public static void main(String[] args) throws Exception {		BufferedReader reader = new BufferedReader(new FileReader(				"main.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); } } /* * 排序 */ List
> list = new ArrayList
>( map.entrySet()); /* * 定义排序规则,按照Entry的Value排序 */ Comparator
> comparator = new Comparator
>() { public int compare(Map.Entry
left, Map.Entry
right) { return (left.getValue()).compareTo(right.getValue()); } }; // 利用Collections类的sort方法来排序,按照自定义的规则排序 Collections.sort(list, comparator); // 打印最多五个 int last = list.size() - 1; for (int i = last; i > last - 5; i--) { String key = list.get(i).getKey(); Integer value = list.get(i).getValue(); System.out.println(key + " :" + value); } }}

  

转载于:https://www.cnblogs.com/hubaoyue/p/3577447.html

你可能感兴趣的文章
androidkiller连接模拟器并修改源码调试
查看>>
java高并发核心要点|系列2|锁的底层实现原理
查看>>
Chunk.entrypoints: Use Chunks.groupsIterable and filter by instanceof Entrypoint instead
查看>>
文本处理方法概述
查看>>
homework3
查看>>
剑指前端(前端入门笔记系列)——Math对象
查看>>
spark学习之IDEA配置spark并wordcount提交集群
查看>>
flask seesion组件
查看>>
gprof—使用记录之自以为是优化
查看>>
Table被web编程弃用的原因
查看>>
Spring之<context:property-placeholder location="classpath:... "/>标签路径问题
查看>>
Windows API 之 FineFirstFile、FindNextFile
查看>>
C# 中两个DataTable join 连接
查看>>
杭电ACM 2046 阿牛的EOF牛肉串
查看>>
iOS的TCP/IP协议族剖析&&Socket
查看>>
C#中的NULL的初步理解
查看>>
cssText批量修改样式
查看>>
基于jQuery的俄罗斯方块
查看>>
爬取知乎热榜标题和连接 (python,requests,xpath)
查看>>
python多线程和多进程(二)
查看>>