java代码:统计一本小说中的数字,并计算前10所占百分比
2016-06-02 18:05
519 查看
需求分析:
1.读取小说,把小说字储存在TreeMap集合中,其中key值储存字,value储存统计字个数;
2.把取出的key,通过key得到value进行统计并排序取前10
3.定义方法,计算百分比
实现代码如下:
package com.day04;
import java.io.*
}
输出结果如下
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 ma 4000 p.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); }
}
输出结果如下
相关文章推荐
- JAVa Web从入门到上机学习
- eclipse 启动项目org.xml.sax.SAXParseException; lineNumber: 18; columnNumber: 1; 文件提前结束
- JAVA 标识符和关键字
- Java 继承
- 一起来学springSecurity安全框架(二)
- 使用IntelliJ IDEA 14和Maven创建java web项目(maven 配置)
- 项目笔记0001
- spring boot 学习之controller
- javabean的简单总结
- Java关键字static,abstract,instanceof使用(静态属性,静态方法,抽象类抽象方法的学习)
- Spring Boot的启动器starter基本类型罗列
- eclipse构建及运行maven web项目
- IntelliJ IDEA jdk配置
- jmeter性能监控(java)
- 从Java源码的角度来分析HashMap与HashTable的区别
- 利用eclipse生成API文档
- hihocoder 1078 线段树的区间修改 java实现
- java常用几种枚举类型
- struts中的数据校验
- java获得当前文件路径