- 浏览: 344154 次
- 性别:
- 来自: 大西洋底
文章分类
最新评论
-
jfztaq:
问题果然解决了,太感谢了
Chrome经常性的“喔唷,崩溃了”问题 -
saintor:
因为不是每个subclass都执行Cloneable吧。
Java Object类的方法们 -
337240552:
写的不错 这个东西晕死一堆人。
对JavaScript中原型的理解 -
liang86liang:
jkleeo 写道很深奥啊.
C/CPP只有在大学的时候听说过 ...
Windows下用Eclipse搭建C/C++开发环境 -
ahong520:
看来你也是四国军棋爱好者,啥时候切磋一下
四国军棋游戏V0.3.5(未完成)
统计的是英文版"悲惨世界",代码如下,使用ascii值做数组下标直接赋值:
我以为会多慢呢,没想到瞬间完成,统计结果如下:
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.text.DecimalFormat; public class EnglishAlphaBetaStatics { public static final String EN_FOLDER = "C:/resources/Books/English/Les Miserables.txt"; private static final int ASCII_START = 33; // ASCII from 33; ignore the // space private static final int ASCII_LENGTH = 94; private int[] result = new int[ASCII_LENGTH]; private int total = 0; /** * Handle one English fiction * * @param file * @throws IOException */ public void handleOneFile(File file) throws IOException { if (file == null) throw new NullPointerException(); BufferedReader in = new BufferedReader(new FileReader(file)); String line; while ((line = in.readLine()) != null) { for (int i = 0; i < line.length(); i++) { char c = line.charAt(i); if (c >= ASCII_START && c < ASCII_START + ASCII_LENGTH) { result[c - ASCII_START] += 1; total++; } else { } } } in.close(); } /** * Print the statics result */ public void printResult() { // For sorting int[] abc = new int[ASCII_LENGTH]; for (int i = 0; i < abc.length; i++) { abc[i] = ASCII_START + i; } // Sorting for (int i = 0; i < result.length; i++) { for (int j = 0; j < result.length - 1 - i; j++) { if (result[j] < result[j + 1]) { int tmp = result[j]; result[j] = result[j + 1]; result[j + 1] = tmp; // swap the characters tmp = abc[j]; abc[j] = abc[j + 1]; abc[j + 1] = tmp; } } } // Format DecimalFormat df = new DecimalFormat("#.######"); System.out.println("Total characters: " + total); System.out.println("Char\tNumber\t%"); System.out.println("-----------------------------------"); for (int i = 0; i < result.length; i++) { char c = (char) abc[i]; double rate = result[i] * 100.0 / total; System.out.println(c + "\t" + result[i] + "\t" + df.format(rate) + "%"); } } /** * @param args */ public static void main(String[] args) throws IOException { EnglishAlphaBetaStatics eab = new EnglishAlphaBetaStatics(); eab.handleOneFile(new File(EN_FOLDER)); eab.printResult(); } }
我以为会多慢呢,没想到瞬间完成,统计结果如下:
Total characters: 2800496 Char Number % ----------------------------------- e 345891 12.351062% t 235280 8.401369% a 211330 7.546163% o 190799 6.813043% h 180302 6.438217% n 176170 6.290671% i 174552 6.232896% s 166855 5.958052% r 152896 5.459604% d 113123 4.039392% l 102527 3.66103% u 70975 2.534372% c 66061 2.358904% m 59036 2.108055% w 56513 2.017964% f 56476 2.016643% , 51714 1.846601% g 48633 1.736585% p 41978 1.498949% y 39999 1.428283% b 36215 1.293164% . 32322 1.154153% v 25400 0.906982% k 14724 0.525764% " 14616 0.521908% T 12625 0.450813% - 10222 0.365007% I 9530 0.340297% A 6890 0.246028% H 6553 0.233994% M 6435 0.229781% ; 6204 0.221532% E 4313 0.154008% S 4292 0.153259% C 4262 0.152187% x 3882 0.138618% ' 3852 0.137547% ! 3690 0.131762% O 3593 0.128299% j 3495 0.124799% B 3476 0.124121% W 3316 0.118408% ? 3094 0.11048% R 3057 0.109159% P 3047 0.108802% F 2811 0.100375% N 2751 0.098233% : 2553 0.091162% J 2536 0.090555% q 2535 0.09052% G 2401 0.085735% L 2296 0.081985% V 2021 0.072166% z 1960 0.069988% D 1735 0.061953% Y 1147 0.040957% U 768 0.027424% 1 687 0.024531% K 600 0.021425% 8 422 0.015069% * 303 0.01082% X 262 0.009355% 2 243 0.008677% 3 237 0.008463% ` 227 0.008106% 5 203 0.007249% [ 197 0.007034% ] 197 0.007034% 0 195 0.006963% 4 155 0.005535% 7 142 0.005071% 6 133 0.004749% Q 121 0.004321% 9 113 0.004035% ( 95 0.003392% ) 95 0.003392% Z 58 0.002071% _ 40 0.001428% | 36 0.001285% { 2 0.000071% } 2 0.000071% + 1 0.000036% / 1 0.000036% # 0 0% $ 0 0% % 0 0% & 0 0% < 0 0% = 0 0% > 0 0% @ 0 0% \ 0 0% ^ 0 0% ~ 0 0%
发表评论
-
文件分割与合并
2020-03-19 20:59 261package com.test.filestool; ... -
盒子里面另一个是红球的概率问题
2019-05-08 09:27 762问题如下:引用有三个盒子,其中一个里面是两个红球,一个里面是两 ... -
Mac OS X 下运行Java standalone 连接 Notes
2017-11-27 12:32 784Mac OS X 下运行Java standalone 连接 ... -
随机密码生成
2015-09-10 10:19 776import java.util.Random; p ... -
Java 处理mail subject
2015-06-15 21:16 1075对于mail subject 前面烦人的各种Re: 或Fw: ... -
有趣的“生命游戏”
2013-04-04 10:56 1034“生命游戏” 本世纪70年代,人们曾疯魔一种被称作“生命游戏” ... -
有趣的统计英文单词频率的例子
2013-03-02 00:22 1952统计一篇英文文档或一本小说中单词出现的次数,下面代码使用的是英 ... -
有趣的将一个十进制整数转换成二进制输出的算法
2013-02-27 00:20 1341原题是将一个十进制整数转换成二进制输出。 分析:任何数可以表 ... -
统一批量修改照片名字
2012-09-01 14:00 2924在给小宝拍的照片中,有我手机拍的,有媳妇手机拍的,还有相机拍的 ... -
关于Java的UUID
2012-08-30 18:40 8312UUID或者UNID或者UID,是一个统一唯一标识,可以用来标 ... -
关于Java中的哈希表 HashMap,Hashtable 等
2012-07-27 10:10 2788首先来了解一下基本概念 所谓哈希表(Hash Table,又 ... -
关于Java中的哈希表
2012-07-27 10:01 1关于Java中的哈希表首先 ... -
关于Java的“浅拷贝”和“深拷贝” (clone method)
2012-07-24 14:31 1296这是关于Java的clone, 一些知道的和不知道的。 1. ... -
从某网站下载MP3的例子
2012-05-29 23:14 1396从某网站下载MP3的例子。为安全起见,将网站信息匿了。 ... -
统计项目中Java文件数和Java代码行数
2010-12-25 11:51 6473其实就是使用递归遍历目录下所有文件 import jav ... -
Java循环内goto语句的替代方案
2010-12-12 23:04 3245众所周知,Java虚拟机根本没有实现goto关键字。我的一个函 ... -
Struts 2 + Spring 2 + JPA + AJAX示例
2009-09-12 21:18 2580这个例子其实就是来自Struts 2的文档,但是原例子针对的是 ... -
Java线程编程学习笔记(二)
2009-06-11 17:23 1328这里是上一篇:Java线程编程学习笔记(一) Java线程编 ... -
Java线程编程学习笔记(一)
2009-04-09 10:46 2193"Java Thread Programming&q ... -
学习Spring 2.5和Hibernate 3的代码示例
2008-06-06 16:01 2510代码内容(每个包都是一个独立的应用,彼此不干涉): 一个最小 ...
相关推荐
这种统计可以帮助我们了解文本的基本特征,例如英文文本中,e是最常见的字母,其次是t、a等。这对于识别文本语言、检测文本的重复性或者破解加密系统(如经典的凯撒密码)都有帮助。 在C++编程语言中,实现单词字母...
本程序能够读取5篇英语新闻,统计其中的各个字母出现的频率。
哈夫曼编码统计英文字母频率 哈夫曼编码是一种高效的编码方式,广泛应用于文件压缩、数据压缩等领域。在本节课程设计中,我们将使用哈夫曼编码来统计一段英文中字母的频率,并对其进行编码。 首先,让我们来了解...
在编程领域,尤其是在数据分析和文本处理中,统计英文文章字母是一项基础任务,它可以帮助我们理解文本的特性,比如字母频率、语言模式等。本程序采用C++语言实现,旨在提供一个简单的方法来统计一篇文章中各个字母...
在本文中,我们将深入探讨如何使用C++编程语言来实现一个单词字母频率统计程序,该程序可以读取任意文档并生成字母频率统计结果,同时利用二叉搜索树(BST)结构进行高效的数据存储和搜索。 首先,让我们了解C++的...
java作业,输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。实验报告+详细代码
在本项目中,我们主要探讨的是如何利用Java编程语言来实现对英文文献中字母出现频率的统计,并将结果以直方图的形式展示出来。这个任务涉及到计算机科学中的文本处理、数据统计以及图形可视化等多个关键知识点。 ...
这个作业要求你编写一个程序,能够接收用户输入的10个字符,然后分别统计其中的英文字母、空格或回车、数字以及其他的字符数量。下面,我们将详细讨论如何实现这个功能。 首先,C语言提供了一个名为`getchar()`的...
【统计英文字母、空格、数字和其他字符的个数小程序】 这个程序设计任务是针对C语言编程的一次课程设计,旨在让学生掌握程序设计的基本思路和C语言的使用。目标是编写一个小程序,该程序能接收用户输入的一行字符,...
在Java编程中,统计文本文件中字母出现的频率是一项常见的任务,这可以帮助我们理解文本的特性,例如在语言模型或信息检索系统中。这个任务的关键是读取文件内容,转换为字符数组,然后进行计数。以下是实现这个功能...
需要注意的是,这个例子中只统计了英文大小写字母。如果你想同时统计其他语言的字母,例如中文,可能需要使用不同的方法,例如`Char.GetUnicodeCategory`函数,并根据Unicode字符分类来判断。 此外,VB还提供了其他...
本项目专注于统计英文文本中每个字母的出现概率,然后使用哈夫曼编码和香农编码来压缩这些信息。接下来,我们将深入探讨这两个编码方法及其在文本压缩中的应用。 首先,我们要理解的是,文本中的字符概率分布通常是...
在C语言中,统计字母使用频率是一项常见的编程任务,它涉及到字符处理、数组操作和循环控制等基础知识。这个任务通常用于分析文本数据,比如检查英文文章中各字母的出现次数,或者是进行简单的密码学分析。以下是对...
# 题目: # 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 # 分析: # 利用 while 或 for 语句,条件为输入的字符不为 '\n'。
这个有趣的计算英文字母和阿拉伯数字的概念源自一个智力游戏,它将26个英文字母对应到1到26这26个整数,然后通过计算每个单词中字母对应的数值之和来得到一个百分比。这种玩法揭示了一些有趣的现象,同时也引出了...
统计英文字母和数字字符.exe
英文字母和数字识别数据集,数据包含62个目录,其中包括26个大写字母、26个小写字母和10个数字的图像数据,共有6.3万张图片 英文字母和数字识别数据集,数据包含62个目录,其中包括26个大写字母、26个小写字母和10个...
- **总计数**:统计所有大写和小写字母出现的总次数。 - **概率计算**:将每个字母的计数除以总计数得到概率。 示例中的代码通过 `PrintResult` 函数实现了概率计算,并输出结果到文件。 ### 5. 输出格式控制 - **...
标签“统计其中的英文字母、数字”表明本节的主要任务是统计文本中的英文字母和数字。 代码解释 代码主要包括以下几个部分: 1. 包含头文件 `<stdio.h>` 和 `<stdlib.h>`,用于输入输出和标准库函数。 2. 定义...