Java生成一个随机数
1、使用Random rd = new Random
java
//生成一个0-9的随机数
Random rd = new Random();
int n = rd.nextInt(10);
System.out.println(n);
//1.8版本之后还可以生成11-15的随机数
int m = rd.nextInt(11,16);//左闭右开区间
System.out.println(n);
2、使用Math.random()
java
//生成一个0-9的随机数
int n = (int) (Math.random()*10);
System.out.println(n);
3、根据以上可以实现一个随机数字小游戏。
分析:
- 先生成一个1-100的随机数
- 再写一个循环,比较输入的数与随机数,一样则跳过
实现代码:
java
public static void main(String[] args) {
//猜数字
// int n = (int) (Math.random()*100);
Random rd = new Random();
int n = rd.nextInt(100) + 1;
System.out.println("欢迎来到猜数字小游戏,请输入一个1-100的数字吧!");
Scanner sc = new Scanner(System.in);
while (true){
int x = sc.nextInt();
if (x == n){
System.out.println("恭喜你猜对了");
return;
}
if (x > n) {
System.out.println("猜的太大了,请再猜一次吧");
}
if (x < n) {
System.out.println("猜的太小了,请再猜一次吧");
}
}
}
4、验证码的实现。
通过上述,我们可以衍生思考一下验证码是怎么生成的。
java
public static void main(String[] args) {
//Random随机数类生成验证码
//先定义验证码的长度
int codeLength = 5;
//使用StringBuilder减少字符串拼接的次数
StringBuilder code = new StringBuilder();
for (int i = 0; i < codeLength; i++) {
// 随机大写字母的ASCLL码
int upperLetter = (int) (Math.random()*26)+65;
// 随机小写字母的ASCLL码
int lowerLetter = (int) (Math.random()*26)+97;
// 随机数字的ASCLL码
int number = (int) (Math.random()*10)+48;
// 定义验证码判断规则
int random = (int) (Math.random()*3)+1;
switch (random){
case 1:
code.append((char) upperLetter);
break;
case 2:
code.append((char) lowerLetter);
break;
case 3:
code.append((char) number);
break;
}
}
System.out.println(code);
}