`
baiguomeng
  • 浏览: 998174 次
文章分类
社区版块
存档分类
最新评论

一个字母频率分析计算小程序

 
阅读更多

//在密码学中有个简单的分析密码的方法,就是计算每个字母出现的频率,这个小程序就是计算输
//入字符串中每个字母出现的次数的,我现在初学Java,我将把我平时的小练习发到这里,用来自勉
//和初学者共同学习进步.高手不要见笑.
/*
*auther starshus
*
*Date 04/11/20
*/
//6.7.5
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Analyser
{
private String words;
public Analyser (String input)//构造方法,把输入的密码全部转换为大写字母
{
words = input.toUpperCase();
}
public int getNum()//返回密码的长度
{
return words.length();
}
public int result(char c)//方法:计算在密码中character c出现的次数
{
String temp=new String(words);
int index=temp.indexOf(c);
int n=0;
while(index>=0)
{
temp=temp.substring(index+1,temp.length());
index=temp.indexOf(c);
n++;
}
return n;
}
public static void main(String[] args)//主方法
{
System.out.print("Please input the words:");//输入passwd
String inputLine;
try{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
inputLine = in.readLine();

}catch(Exception exc)
{
System.out.println("Sorry,please input a string,thx");
return;
}

Analyser word=new Analyser(inputLine);//用类生成一个对象word
int[] num = new int[26];//定义一个字母,用来装A-Z26个字母
int i;
char ch='A';
for (i=0;ch<91;ch++,i++)//计算每个字母在passwd出现的次数
num[i]=word.result(ch);
System.out.println("The passwd you input is : "+inputLine);//输出
System.out.println("The length of the passwd is : "+word.getNum());//输出输入密码长度
for (i=0,ch='A';i<26;ch++,i++)//输出每个字母出现的次数
System.out.println("The num "+ch+" has presented : "+num[i]);
}
}

分享到:
评论

相关推荐

    电阻 电流 电压 电感 频率电学计算小程序

    《电阻、电流、电压、电感与频率电学计算小程序详解》 在电子技术领域,电阻、电流、电压、电感以及频率是基础且至关重要的概念。这些元素构成了电路理论的核心,而理解并掌握它们之间的关系是每一个电气工程师或...

    字符串统计字母出现的频率

    本项目聚焦于使用C语言来统计一个字符串中各个字母出现的频率,这对于理解和掌握C语言的基本语法、内存管理以及算法设计至关重要。"子字符串"这一标签提示我们关注的是字符串的一部分,而不是整个字符串本身。 在...

    java程序设计实现统计英文文献字母出现频率,画直方图

    2. 遍历字母频率数据,根据每个字母的频率计算对应条形的高度。 3. 在`JFrame`的`paintComponent()`方法中,使用`Graphics`对象进行绘制。每个条形的位置由字母的顺序决定,高度由频率决定。 4. 为了美观,还可以...

    统计一篇txt文档(英文)中各英文字母出现的次数及概率

    - **字符串复制**:`strcpy` 可以将一个字符串复制到另一个字符串中。 - **字符串比较**:`strcmp` 用于比较两个字符串是否相等。 示例中的代码通过 `length = strlen(text);` 获取读取的文本长度。 #### 3.2 字符...

    C语言字符频率统计程序代码

    - 主函数首先调用了一个名为`sum()`的函数,该函数用于计算一个由用户输入的数学表达式的结果。 - 用户需要输入一个以“=”结尾的表达式,例如“2*2*3-2/2=”。 - 计算结果会保留六位有效数字并输出。 3. **`sum...

    统计英文文章字母

    本程序采用C++语言实现,旨在提供一个简单的方法来统计一篇文章中各个字母的出现次数,并计算出它们在文章中所占的比例,即每个字母的概率。 首先,我们要了解C++的基本语法和数据结构。在这个程序中,可能会使用到...

    微信小程序实现按字母排列选择城市功能

    1. 字母栏的高度计算:需要计算所有字母内容的高度,并将这些高度存为一个数组。在触摸字母栏进行滑动时,通过拿到触摸点距离文档左上角的距离(pageY),结合字母栏顶部的位置,以及每个字母的高度,计算出可能到达...

    统计英文文本每个字母出现概率(不分大小写)并进行哈夫曼,香农编码

    信息熵是衡量信息不确定性的一个度量,对于英文文本,可以计算出每个字符的信息量,即负对数概率。香农编码是将每个字符分配一个长度等于其信息量的二进制码,使得编码后的平均码长等于文本的信息熵。在实际应用中,...

    统计输入字符各个字母出现频率的解题思路

    本文跟大家分享的是编写一个程序,能够计算输入字符各个字母出现的频率,具体如下  先跟大家展示一下最终结果: 刚刚接手题目的时候,我想得很复杂,因为26个字母中有大小写嘛,小写a~z,大写A~Z 但是,无论是大写...

    互信息计算_互信息的计算_

    这可以通过扫描文档并维护一个二维频率表来实现。 2. **计算概率**:基于统计的频率,计算单个字母的概率P(X)和P(Y),以及它们共同出现的概率P(X, Y)。 3. **计算互信息**:将上述概率代入互信息的公式,对每对...

    英文文本信息熵的计算_编程_计算_熵_信息熵_英文文本的信息熵_

    在数学上,一个离散随机变量X的信息熵H(X)由其概率分布P(X)决定,计算公式为: \[ H(X) = -\sum_{i} P(x_i) \log_2{P(x_i)} \] 其中,\( P(x_i) \) 是事件 \( x_i \) 发生的概率,log是以2为底的对数,因为通常...

    常用电子小软件电子 RC振荡器的计算 数码管软件 色环电阻阻值计算程序 LC振荡器的计算 555集成电路设计

    在电子工程领域,掌握一些基础计算工具是至关...压缩包中的"RC振荡器的计算.rar"、"神奇计算器.rar"以及"电子类实用小程序收集"提供了实际操作和学习这些概念的资源,对于电子爱好者和专业工程师都是宝贵的参考资料。

    python打印田字格程序2

    在Python编程中,这个任务要求我们创建一个程序,该程序能生成一个由随机字符组成的“田”字格图形,字符包括26个英文字母(大小写)、数字和下划线,并统计每种字符出现的频率,结果保存在一个字典中。下面是详细的...

    一行文本的字母和单词的计数

    标题 "一行文本的字母和单词的计数" 描述了一个简单的C++程序,该程序能够读取一行文本,然后计算出这行文本中单词的总数以及每个字母出现的频率。程序假设文本仅由字符、空格、逗号和句号组成,因此在处理时并未...

    统计单词出现频率代码

    标题 "统计单词出现频率代码" 描述的是一个用于计算英文文章中单词频率的程序。这个程序可以帮助我们了解一篇文章中各个单词出现的频次,对于文本分析、信息检索或语言学习等场景都十分有用。标签 "单词" 和 "频率" ...

    实现多种算法的加密解密小程序

    这种加密方式虽然易于理解和实现,但安全性相对较低,因为容易被频率分析破解。 希尔算法是一种线性变换加密,由美国数学家威拉德·F·希尔在1929年提出。它涉及到矩阵运算,将明文按照一定大小的块进行处理,然后...

    Caesar密码加密解密

    在本Java程序中,可能包含了一个启发式函数,它计算不同解密结果中字母频率与标准英语字母频率的差异,并选择差异最小的作为最佳解密结果。 为了提高程序的实用性,可以添加用户界面,允许用户输入待加密或解密的...

    计算机密码学 凯撒密码加密算法

    1. **选择密钥**:密钥是一个整数,表示字母表中字母移动的位置。在凯撒密码中,密钥可以是1到25之间的任意值。 2. **加密**:对于明文中每一个字符,根据密钥确定新的位置。如果字母表是循环的,那么超出字母表范围...

Global site tag (gtag.js) - Google Analytics