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);
    }
相关推荐
IT_陈寒4 小时前
Redis内存爆了,原来我漏掉了这个致命配置
前端·人工智能·后端
fliter5 小时前
最后一块拼图:用 bitvec 构造 IPv4 包,真正做出自己的 Ping
后端
fliter6 小时前
用 Rust 解析并生成 ICMP 包:checksum、nom 与 cookie-factory
后端
蝎子莱莱爱打怪6 小时前
XZLL-IM干货系列 03|消息 ID 设计:一个 UUID 搞不定的事,我用两个 ID 解决了
后端·面试·开源
fliter6 小时前
从 panic 到 Result:用 Rust 重新整理一个 ping 项目的错误处理
后端
森蓝情丶7 小时前
我给 AI 搭了个法庭:一个前端仔的 LangGraph 实战全记录
前端·后端
JensCS猿7 小时前
从 Spring Boot 回看 SSM 框架:手动挡与自动挡的驾驶哲学
后端
爱勇宝7 小时前
干了近 8 年,一夜之间被裁:AI 时代,程序员最该害怕的不是 AI
前端·后端·程序员
科米米7 小时前
嵌入式日志模块
后端
血小溅7 小时前
三大 AI 编码框架深度对比:GSD vs OpenSpec vs Superpowers
人工智能·后端