(Java)統計隨機產生的字母各自出現次數

輸出結果參考如下:

程序清單:

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')+" ");
	}
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章