关闭

(Java)统计随机产生的字母各自出现次数

1028人阅读 评论(0) 收藏 举报
分类:

输出结果参考如下:

程序清单:

1、产生随机数

//产生随机数
public class RandomCharacter {
	public static char getRandomCharacter(char ch1,char ch2){
		return (char)(ch1+Math.random()*(ch2-ch1+1));
	}
	//产生随机小写字母
	public static char getRandomLowerCaseLetter(){
		return getRandomCharacter('a','z');
	}
	//产生随机大写字母
	public static char getRandomUpperCaseLetter(){
		return getRandomCharacter('A','Z');
	}
	//产生0-9之间随机数字
	public static char getRandomDigitCharacter(){
		return getRandomCharacter('0','9');
	}
	public static char getRandomCharacter(){
		return getRandomCharacter('\u0000','\uFFFF');
	}
}


2、随机生成100个小写字母,统计26个字母各自出现的次数

//随机生成100个小写字母,统计26个字母各自出现的次数
public class CountLettersInArray {

	public static void main(String[] args) {
		
		char[] chars=createArray();
		System.out.println("The lowercase letters are:");
		displayArray(chars);
		int[] counts=countLetters(chars);
		System.out.println();
		System.out.println("The occurences of each letter are:");
		displayCounts(counts);
		
	}
	public static char[] createArray(){//生成100个随机小写字母
		char[] chars=new char[100];
		for(int i=0;i<chars.length;i++)
			chars[i]=RandomCharacter.getRandomLowerCaseLetter();
		return chars;
	}
	public static void displayArray(char[] chars){//按一行20个显示字母
		for(int i=0;i<chars.length;i++){
			if((i+1)%20==0)
				System.out.println(chars[i]+" ");
			else System.out.print(chars[i]+" ");
		}
	}
	public static int[] countLetters(char[] chars){//返回每个字母对应出现的次数
		int[] count=new int[26];
		for(int i=0;i<chars.length;i++)
			count[chars[i]-'a']++;
		return count;
	}
	public static void displayCounts(int[] count){//显示26个字母及其对应出现次数,每行10个
		for(int i=0;i<count.length;i++)
			if(((i+1)%10==0))
				System.out.println(count[i]+"-"+(char)(i+'a')+" ");
			else System.out.print(count[i]+"-"+(char)(i+'a')+" ");
	}
}



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:10164次
    • 积分:191
    • 等级:
    • 排名:千里之外
    • 原创:9篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论