读取JDK API文档,并根据单词出现频率排序
1,拿到 API 文档
登录 https://docs.oracle.com/javase/8/docs/api/ ,
选中特定的类,然后 copy 其中的内容,

放入 TXT 文件中 ,

2,读取TXT内容,并排序
package com.lgx.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
public class ReadVectorAPI {
public static String filename = "src/Vector.txt";
public static StringBuffer sb = null;
public static void main(String[] args) {
try {
//根据单词字母排序
countWordOrderByWord();
//根据单词频率排序
countWordOrderByCount();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
// 计算单词的出现次数,依据单词排序
public static void countWordOrderByWord() throws FileNotFoundException {
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(new File(filename)));
String inputLine = null;
TreeMap<String, Integer> map = new TreeMap<String, Integer>();
while ((inputLine = br.readLine()) != null) {
String[] words = inputLine.split("[ \n\t\r.,;:!?(){}]");
for (int i = 0; i < words.length; i++) {
String key = words[i].toLowerCase();
if (key.length() > 0) {
if (map.get(key) == null) {
map.put(key, 1);
} else {
int times = map.get(key).intValue();
times++;
map.put(key, times);
}
}
}
}
Set<Map.Entry<String, Integer>> entrySet = map.entrySet();
System.out.println("=====根据单词字母排序=====");
for (Map.Entry<String, Integer> entry : entrySet) {
System.out.println(entry.getKey() + " 在API文档中出现了 " + entry.getValue() + " 次");
}
} catch (IOException e) {
e.printStackTrace();
}
}
// 计算单词的出现次数,依据次数排序
public static void countWordOrderByCount() throws FileNotFoundException {
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(new File(filename)));
String inputLine = null;
TreeMap<String, Integer> map = new TreeMap<String, Integer>();
while ((inputLine = br.readLine()) != null) {
String[] words = inputLine.split("[ \n\t\r.,;:!?(){}]");
for (int i = 0; i < words.length; i++) {
String key = words[i].toLowerCase();
if (key.length() > 0) {
if (map.get(key) == null) {
map.put(key, 1);
} else {
int times = map.get(key).intValue();
times++;
map.put(key, times);
}
}
}
}
List<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
public int compare(Entry<String, Integer> o1, Entry<String, Integer> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
System.out.println("=====根据单词频率排序=====");
for (Map.Entry<String, Integer> mapping : list) {
System.out.println(mapping.getKey() + " 在API文档中出现了 " + mapping.getValue() + " 次");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
输出结果前部分截图为;

读取JDK API文档,并根据单词出现频率排序的更多相关文章
- 所谓的规范以及JDK api文档的重要性
所谓的规范,就是在jee api 文档里对应的接口. 可以从jdk文档和jee文档的目录结构,接口中获取对整个编程范围的把握
- JDK API文档下载
java SE 8 API文档:http://www.oracle.com/technetwork/java/javase/documentation/jdk8-doc-downloads-21331 ...
- JDK API文档中,<E>、<T>、<?>分别代表什么意思?
Type ParameterConventionsYou have already seen the angle bracketand single letter notation used tore ...
- JDK API文档_1.6.0 中文版
链接:https://pan.baidu.com/s/1b0inUgYvEfjeusa3z_2p-g 密码:f8jk
- (转载)中文Appium API 文档
该文档是Testerhome官方翻译的源地址:https://github.com/appium/appium/tree/master/docs/cn官方网站上的:http://appium.io/s ...
- 中文Appium API 文档
该文档是Testerhome官方翻译的源地址:https://github.com/appium/appium/tree/master/docs/cn官方网站上的:http://appium.io/s ...
- Day01:API文档 / 字符串基本操作
JDK API 什么是JDK API? JDK中包含大量的API类库,所谓AP就是一些写好的,可提供直接调用的功能(在Java语言中,这些功能以类的形式封装). JDK API包含的类库功能强大,经常 ...
- API文档自动生成,Swagger的配置
ASP.NET的部署方式 第一步:引用程序集 打开NuGet程序包管理器,搜索Swagger,安装第一个,注意画圈的地方, 已经包含主程序和UI了,安装完成后会在根目录App_Start文件夹下生成S ...
- 如何使 WebAPI 自动生成漂亮又实用在线API文档
1.前言 1.1 SwaggerUI SwaggerUI 是一个简单的Restful API 测试和文档工具.简单.漂亮.易用(官方demo).通过读取JSON 配置显示API. 项目本身仅仅也只依赖 ...
随机推荐
- pycharm在进行debug时不小心把console关闭了,恢复console的办法
点击下图中右边的箭头就恢复了 此时可看到console已恢复
- (一)如何理解java面向对象编程
哲学中,事物总是螺旋式上升,波浪式前进.因而编程也逐渐向人类更容易理解的方向前进,多年来人们苦苦追求的编程境界 : 高扩展性(extensibility),高复用性(reuseable).java语言 ...
- Rust入坑指南:千人千构
坑越来越深了,在坑里的同学让我看到你们的双手! 前面我们聊过了Rust最基本的几种数据类型.不知道你还记不记得,如果不记得可以先复习一下.上一个坑挖好以后,有同学私信我说坑太深了,下来的时候差点崴了脚 ...
- Java接口统一样式返回模板
Java接口统一样式返回模板 背景 在进行接口开发时,一般需要一个固定的返回样式,成功和失败的时候,都按照这种格式来进行统一的返回,这样,在与其他人进行接口之间的联调时不会显得很杂乱无章.而这种固定的 ...
- Git 项目提交新仓库
提示:进入项目文件操作 步骤: 1.git init ----------初始化git仓库 2.git remote add origin 你的项目地址 ------------------如: ...
- Asp.net Core全局异常监控和记录日志
前言 系统异常监控可以说是重中之重,系统不可能一直运行良好,开发和运维也不可能24小时盯着系统,系统抛异常后我们应当在第一时间收到异常信息.在Asp.net Core里我使用拦截器 ...
- ajax同步请求与异步请求的区别
ajax 区别: async:布尔值,用来说明请求是否为异步模式.async是很重要的,因为它是用来控制JavaScript如何执行该请求. 当设置为true时,将以异步模式发送该请求,JavaScr ...
- IDEA配置tomcat报错
昨晚想Eclipse转IDEA,谁知道在tomcat就卡住了,难受.今天一下就解决了,记录一下(没有保存错误信息的截图[/敲打]). 问题描述: 运行的时候tomcat卡在Deployment of ...
- Java基础(一)对象构造
由于Java对象构造非常重要,所以Java提供了多种编写构造器的机制. 1.重载 如果多个方法有相同的名字.不同的参数,便产生了重载.编译器必须挑选出具体执行哪个方法,它通过用各个方法给出的参数类型与 ...
- Stringbuilder常用方法
一.创建Stringbuilder对象StringBuilder strB = new StringBuilder(); 1.append(String str)/append(Char c):字符串 ...