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

文章作者 100test 发表时间 2007:10:10 12:23:34
来源 100Test.Com百考试题网


在密码学中有个简单的分析密码的方法,就是计算每个字母出现的频率,这个小程序就是计算输入字符串中每个字母出现的次数的,我现在初学Java,我将把我平时的小练习发到这里,用来自勉和初学者共同学习进步.高手不要见笑.
//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]).
}
}



相关文章


Mysql的子类,专门验证登录Pa ql
用Java写一个地图编辑器
我的百宝箱之tomcat5中文问题解决之道
在较量中携手前行——写给Java1.5和.NET2.0
一个字母频率分析计算小程序
Servlet与Javabean配置
在Java中实现UDP协议编程的方法
Java初学者入门经典:面向对象的思维方法
java新手必读:Java学习的捷径
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛