作业2比较简单,直接贴作业3吧。
/*
* 字符a-z 用(int)强转 可以 转为整数,整数 可以用 (char)强转为一个字符。
* 随机1000 个整数,强转为a-z中的字符,存入一个 char数组中,
* 统计每个字符 出现的次数及比例。
*/
package day1221;
import java.util.Random;
public class homework3 {
public static void main(String[] args){
int x = 0;
char[] arr = new char[1000];
int i =0;
for(i = 0;i<1000;i++){
x = new Random().nextInt(26)+97;
arr[i] =(char)x;
}
//输出数组
for( i = 0;i<arr.length;i++){
System.out.print(arr[i] + " ");
}
System.out.println();
int sum = 0;
for(int c = 0;c<26;c++){
for(i = 0;i<arr.length;i++){
if(arr[i] == (char)('a'+c)){
sum++;
}
}
System.out.println((char)('a'+c)+"一共出现"+sum+"次,"+"所占的数组的比例为"+(double)((double)sum/10)+"%");
sum = 0;
}
}
}
这里还有个比较牛逼的方法:
int number[] = new int[26]; // 记录每个字母出现的次数数组
char[] ch = new char[1000];
for (int i = 0; i < ch.length; i++) {
ch[i] = (char) (Math.random() * (26) + 'a');
int index = ch[i] - 'a';// 这样就可以得到每个字母对应的数组下标
number[index] = number[index] + 1;// 对应字母出现则存储字母的数组加1
}
for (int i = 0; i < number.length; i++) {
System.out.println("字母" + (char) (i + 'a') + "---出现的次数---" + number[i] + "---出现的比例---"+ (double) number[i] / 10 + "%");}