Java生成一个随机数

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);
    }
相关推荐
颜酱5 小时前
DFS 岛屿系列题全解析
javascript·后端·算法
小码哥_常6 小时前
Java后端定时任务抉择:@Scheduled、Quartz、XXL - Job终极对决
后端
uzong6 小时前
Skill 被广泛应用,到底什么是 Skill,今天详细介绍一下
人工智能·后端·面试
小码哥_常6 小时前
Kafka平替!SpringBoot+Redis Stream+消费组打造极致消息队列
后端
IT_陈寒7 小时前
Redis缓存击穿:3个鲜为人知的防御策略,90%开发者都忽略了!
前端·人工智能·后端
uzong8 小时前
Harness Engineering 是什么?一场新的 AI 范式已经开始
人工智能·后端·架构
唐叔在学习9 小时前
Python桌面端应用最小化托盘开发实践
后端·python·程序员
yuhaiqiang9 小时前
被 AI 忽悠后,开始怀念搜索引擎了?
前端·后端·面试
二闹9 小时前
Python文件读取三巨头你该选择哪一个?
后端·python
苏三说技术10 小时前
推荐几个牛逼的AI Agent项目
后端