java 倒入一篇文章,显示每个字母的出现概率,从大到小排序

 1 package com_1;
 2 import java.io.BufferedReader;
 3 import java.io.FileReader;
 4 import java.io.IOException;
 5 import java.math.BigInteger;
 6 import java.text.DecimalFormat;
 7 import java.util.ArrayList;
 8 import java.util.Comparator;
 9 import java.util.TreeMap;
10 import java.util.TreeSet;
11 public class Shuru2
12 {
13     public static void main(String [] args) throws IOException {
14         BufferedReader br=new BufferedReader(new FileReader("F:\\eclipse-workspace\\com_1\\src\\1.txt"));
15         TreeMap<Character,Integer> hm=new TreeMap<>();
16         int  bb;
17         while((bb=br.read())!=-1) {
18              if((bb>=‘A‘&&bb<=‘Z‘)||(bb>‘a‘&&bb<=‘z‘)) {
19                  hm.put((char)bb,hm.containsKey((char)bb)?hm.get((char)bb)+1:1);
20             }
21
22             }
23         br.close();
24         int max=0;
25         int sum=0;
26         int t=0;
27         for(Character k: hm.keySet()) {
28             sum=sum+hm.get(k);
29           }
30         TreeSet<Character> ts=new TreeSet<>(new Comparator<Character>()
31         {
32             public int compare(Character a,Character b) {
33                 int num=hm.get(a)-hm.get(b);
34                 return num==0?1:(-num);
35             }
36         });
37         for(Character k: hm.keySet()) {
38             ts.add(k);
39         }
40         DecimalFormat df = new DecimalFormat("0.00%");
41         for (Character c : ts)
42         {
43             float bai=(float)hm.get(c)/sum;
44
45             System.out.println(c+" "+hm.get(c)+" "+df.format(bai));
46         }
47
48
49
50         //System.out.println(sum);
51 }}

整个人都不好了

原文地址:https://www.cnblogs.com/sunhongbin/p/11794828.html

时间: 2024-10-11 01:46:14

java 倒入一篇文章,显示每个字母的出现概率,从大到小排序的相关文章

DedeCms最新文章显示红色日期或加上new字或new小图片

DedeCMS发布的文章显示红色日期或加上new字或new小图片,给近三天(或当天)发布的文章显示红色日期或加上new字或new小图片等,都是围绕pubdate做文章,写扩展的. 1.红色的日期   [field:pubdate runphp='yes'] $a="<font color=red>".strftime('%m-%d',@me)."</font>"; $b=strftime('%m-%d',@me); $ntime = time

学习Java 的第一篇文章

第一章   Java基础 1.学习方法: 01.找一本好书 初始阶段不适合,可以放到第二个阶段,看到知识点时,要进行验证 02.查看帮助文档和搜索引擎的使用 借助网络上的Blog文章 03.不要急功近利 不要抱着速成的想法,否则必然走弯路     学习编程不是一蹴而就的事情     付出的成本高,才能有一个高薪的收入 04.不要浮躁 不要什么都学,只学有用的 浮躁的程度和技术水平成反比的     走自己的路,让别人去浮躁去吧! 每天问问自己,我是不是开始浮躁了,不能人云亦云. 05.学习语言基础

编写一个void sort(int*x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件

#include<stdio.h> void sort(int*x,int n) { int i,j,k,t; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(x[j]>x[k]) k=j; if(k!=i) { t=x[i]; x[i]=x[k]; x[k]=t; } } } void main() { FILE*fp; int *p,i,a[10]; fp=fopen("array.out","

织梦dede:list标签在列表页同一文章显示两次的解决方法

在列表页用{dede:list}标签调用文章的时候出现了同一篇文章显示两次的问题,经过一天的奋战最后终于解决了,下面CMS集中营站长简单说下我的解决过程来供各位学友参考:1.怀疑是不是每次添加都会自动生成2篇文章,可是查看了栏目下的文章后发现只有一篇.2.怀疑是dedecms 模板调用标签或模板中JS冲突引起的问题,于是将所有代码删除,只留有{dede:list pagesize ='10'}<a href="[field:arcurl/]">[field:title/]&

别翻了,这篇文章绝对让你深刻理解java类的加载以及ClassLoader源码分析【JVM篇二】

目录 1.什么是类的加载(类初始化) 2.类的生命周期 3.接口的加载过程 4.解开开篇的面试题 5.理解首次主动使用 6.类加载器 7.关于命名空间 8.JVM类加载机制 9.双亲委派模型 10.ClassLoader源码分析 11.自定义类加载器 12.加载类的三种方式 13.总结 14.特别注意 @ 前言 你是否真的理解java的类加载机制?点进文章的盆友不如先来做一道非常常见的面试题,如果你能做出来,可能你早已掌握并理解了java的类加载机制,若结果出乎你的意料,那就很有必要来了解了解j

再有人问你Java内存模型是什么,就把这篇文章发给他。

前几天,发了一篇文章,介绍了一下JVM内存结构.Java内存模型以及Java对象模型之间的区别.有很多小伙伴反馈希望可以深入的讲解下每个知识点.Java内存模型,是这三个知识点当中最晦涩难懂的一个,而且涉及到很多背景知识和相关知识. 网上有很多关于Java内存模型的文章,在<深入理解Java虚拟机>和<Java并发编程的艺术>等书中也都有关于这个知识点的介绍.但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了.本文,就来整体的介绍一下Java内存模型,目的很简单,让你读完本文

自学java大概要多久?这篇文章给你答案,仅需4个月学会java

Java学习大概需要多久?这篇文章教你自学java的学习路线一.首先便是学习基础知识1.书籍方面推荐两本<Java编程思想>和<Java核心技术>这两本书有点年头了,也重新发布了好几代,但是最主要的是体系完整,实例多,可操作性强.初学者可以先看<java核心技术>的前六章1.Java程序设计概述2.Java程序设计环境3.Java的基础程序设计结构4.对象与类5.继承6.接口与内部类2.java视频推荐网上的java基础视频是很多的,可以去b站,腾讯课堂上找视频和公开课

android 4.4.3上面,联系人的头像默认显示首字母,但是不支持中文字符,修改支持中文

在android 4.4.3上面,联系人的头像默认显示首字母,但是不支持中文字符,如下图: 如果联系人名字的第一位是英文字符(a-z || A-Z),则默认头像将显示该首字母. 如果支持中文时显示第一个汉字,那就happy了. 那就看看如何通过修改源代码来实现这一小功能吧- 我们还是先了解下联系人头像加载的流程吧- 联系人头像加载这个问题还是很有意思的,在Contacts中使用ContactPhotoManager类(严格来讲是这个类的子类)来实现头像的异步加载. 这个类还使用了LruCache

推荐:想了解一个项目完整测试流程,看这篇文章就OK了

推荐:想了解一个项目完整测试流程,看这篇文章就OK了 写在前面:本文来自真实企业测试人员的工作总结,用一个项目的进行流程为线索,记录每个阶段测试包含的内容及关注点. <ignore_js_op> 项目的测试流程大只包含的几个阶段:立项.需求评审.用例评审.测试执行.测试报告文档 一.立项后测试需要拿到的文档 1.需求说明书 2.原型图(及UI图) 3.接口文档 4.数据库字典(表的数量.缓存机制) 二.需求评审 参加人员:开发.测试及需求人员,由需求人员主持讲解. 为了会议的有效举行,测试及开