public class Test {
public static void main(String[] args) {
for(int i = 0; i < 100; i++) {
char c = (char) (Math.random() * 26 + 'a');
System.out.println(c);
}
}
}
分析: Math.random() 获取0--1的任意小数(包括0, 不包括1), 那么 Math.random( ) * 26 最小值为0, 最大值不会超过26.. 然后 0 -- 26 加 'a'(字符a为97) , 所以
Math.random() * 26 + 'a'的取值范围为 97 -- 123(不包括123), 而这个范围的整数正好对应字母 a -- z, 所以算出来的值就是a -- z的随机字母. 注意<pre name="code" class="java">Math.random() * 26 + 'a'算出来的结果要强转成char类型,因为 Math.random() * 26 + 'a'的值是double类型, 强转char类型会截掉后面的小数部分.最终就变成整数, 因为是 char类型, 所以打印结果就是字母..