Java产生随机字母的问题

来源:百度知道 编辑:UC知道 时间:2024/09/25 14:23:59
import java.util.Random;

public class Alpha {
public static void main(String[] args) {
Random rand = new Random();
int[] alpha = new int[26];
int t;
for (int i = 0; i < 1000; i++) {
t = rand.nextInt();
alpha[Math.abs(t) % 26]++;
}
for (int j = 0; j < alpha.length; j++) {
System.out.println((char) (j + 65) + ": " + alpha[j]);
}
}
}
帮忙给个注释分析一下,看了半天没看明白
呵呵 各位我不是不知道产生随机字母的原理 就是我是在网上看到的这种做法 对这种做法不太明白 希望知道这两行代码
t = rand.nextInt();
alpha[Math.abs(t) % 26]++;的意思,谢谢各位了

这个代码页看不懂~~~
如果你是要获得随机字母可以用这个方法

...
Random rnd = new Random();//建立随机数对象
//下面获得一个 大于等于0 小于26 的随机数字
int num1 = rnd.nextInt(26);
char c = num1 + 'a';//将获取到的字母 加上a的unicode(这里可以看做ASCII)值 因为在unicode表里面 a - z是连续的 假设 num1 = 1 那么 'a' + 1 就等于 'b'
System.out.println(c);
//如果是要获取大写字母
c = num1 + 'A';
//如果是要随机获得大写或者小写字母
int upperCase = rnd.nextInt(2);//随机获取0 或者1
if (upperCase == 1){
c = num1 + 'a';
} else {
c = num1 + 'A';
}
//如果是要一组随机字母 可以建立一个循环 然后用StringBuilder把字符给串起来

有关java的问题,这里都有很详细的讲解,你可以参考一下,方法有很多
参考资料:http://www.baidu.com/s?wd=%B1%B1%B7%E7%CD%F8&rsv_bp=0&rsv_spt=3&inputT=131

随机产生字母。。要看你需要产生字母的范围
直接提取这个字母在ASCII中编码的数字 来强制转化就行了。
并且这些字母编码都是挨着的。