java代码:统计一本小说中的数字,并计算前10所占百分比
来源:互联网 发布:源码大全网页 编辑:程序博客网 时间:2024/04/30 18:12
需求分析:
1.读取小说,把小说字储存在TreeMap集合中,其中key值储存字,value储存统计字个数;
2.把取出的key,通过key得到value进行统计并排序取前10
3.定义方法,计算百分比
实现代码如下:
package com.day04;
import java.io.*
/* * 案例:读一篇小说,统计每个字符出现的次数,然后取出前十位,计算其占全文百分比 */public static void main(String[] args) throws Exception { // TODO 自动生成的方法存根 // 1 创建文件对象 File file = new File("src//com//day04//盗墓笔记.txt"); // 2 读取文件 Reader fr = new BufferedReader(new FileReader(file)); // 3定义一个map集合存储字符和字符的数目 final Map<Character, Integer> map = new HashMap<Character, Integer>(); // 读取文件中的字符,并储存在map中 int len = 0; while ((len = fr.read()) != -1) { // 把读出来的每一个数赋值给char char c = (char) len; // 通过判断集合中是否包含该字符,如果包含就+1,不包含就取1 if (map.containsKey(c)) { map.put(c, map.get(c) + 1); } else { map.put(c, 1); } } // 关闭流 fr.close(); // 用set集合取出map中的key值 Set<Character> set = map.keySet(); // set是无序且不能重复的.所以需把set转换成list,进行排序 List<Character> list = new ArrayList<Character>(set); // 自定义排序(从大到小) Collections.sort(list, new Comparator<Character>() { @Override public int compare(Character o1, Character o2) { // 比较map的value值大小,此处需将map改为final状态修饰符,这样才能供内部匿名类使用 return map.get(o2) - map.get(o1); } }); // 计算value值的总和,获取所有的value值存在一个集合中,然后再遍历集合 int sum = 0; Collection<Integer> values = map.values(); for (Integer value : values) { sum += value; } // for循环遍历list前10 for (int i = 0; i < 10; i++) { char c = list.get(i); int value = map.get(c); System.out.println(c + "-----" + value + "----" + f(value, sum) + "%"); }}/* * 创建方法:计算百分比 */public static String f(int value, int sum) { // NumberFormat nf = NumberFormat.getInstance(); // nf.setMaximumFractionDigits(2); double db = (((double) value / sum) * 100); DecimalFormat df = new DecimalFormat("0.00"); return df.format(db);}
}
输出结果如下
0 0
- java代码:统计一本小说中的数字,并计算前10所占百分比
- [存储过程]sql server 中 统计一条记录中 非空 字段个数 ,并且计算它所占百分比
- 所占百分比
- JAVA中计算百分比 格式化数字
- java中数字格式化,计算百分比
- oracle通过分组函数将各个专业中的人数显示出来了还同时显示这个专业男生的人数,并显示所占专业人数百分比
- JAVA——对象所占内存空间大小的计算
- 计算字体所占大小
- 计算文字所占大小
- JAVA中计算百分比
- java 百分比计算。
- JAVA中计算百分比
- java计算百分比
- 关于Java中的boolean类型所占存储空间
- Java中的基本数据类型在内存所占字节
- java中的数字精确计算
- oracle分析函数系列之ratio_to_report:计算占总数百分比
- 计算入职年限员工人数占总人数的百分比
- 子女教育的一点心得体会
- Android单应用开多进程与单进程跑多应用
- Android样式开发--selector
- 苹果开发者账号和证书那些事
- ClassCastException:android.app.Application cannot be to XXX的解决办法
- java代码:统计一本小说中的数字,并计算前10所占百分比
- 使用VB语言输入个人信息&保存到文档
- 【项目管理和构建】——Maven下载、安装和配置
- 颜色拾取器
- Linux proc文件系统杂记
- 为什麽要判断k<m和K>m+1
- 二维数组的鞍点
- Retrofit+okhttp网络框架介绍
- JSPatch 部署安全策略