在java.util.Random中提供了产生随机数的API:
int nextInt(int bound)
返回从随机数生成器序列中提取的,均匀分布在0(包含)和bound(不包含)之间的一个int类型的伪随机数。简单说,就是返回[0,bound)区间中的一个int值。
0 <= x < bound
返回指定范围的随机数
如果想在范围 [MIN, MAX]之间产生随机数,即:MIN <= x <= MAX,只需要这样:
nextInt(MAX - MIN + 1) + MIN
示例:
生成一个6位的随机数作为验证码:
String result = "";
Random random = new Random();
for (int i = 0; i < 6; i++) {
result += random.nextInt(10);
}
生成一个大于等于100小于等于999的随机数:
Random random = new Random();
Integer result = random.nextInt(999-100+1)+100;
生成一个小写字母组成的字符串:
String val = "";
Random random = new Random();
for (int i = 0; i < 8; i++) {
val += (char) (97 + random.nextInt(26));
}
生成一个由大小写字母和数字组成的字符串:
String val = "";
Random random = new Random();
for (int i = 0; i < 8; i++) {
// 输出字母还是数字
String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
// 字符串
if ("char".equalsIgnoreCase(charOrNum)) {
// 取得大写字母还是小写字母
int choice = random.nextInt(2) % 2 == 0 ? 65 : 97;
val += (char) (choice + random.nextInt(26));
} else if ("num".equalsIgnoreCase(charOrNum)) { // 数字
val += String.valueOf(random.nextInt(10));
}
}