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 小时前
90%的人答错!一文带你彻底搞懂ArrayList
java·后端
mldong7 小时前
Python开发者狂喜!200+课时FastAPI全栈实战合集,10大模块持续更新中🔥
后端
GreenTea7 小时前
从 Claw-Code 看 AI 驱动的大型项目开发:2 人 + 10 个自治 Agent 如何产出 48K 行 Rust 代码
前端·人工智能·后端
Moment10 小时前
AI 全栈指南:NestJs 中的 Service Provider 和 Module
前端·后端·面试
IT_陈寒10 小时前
为什么我的JavaScript异步回调总是乱序执行?
前端·人工智能·后端
Moment10 小时前
AI全栈入门指南:NestJs 中的 DTO 和数据校验
前端·后端·面试
小村儿10 小时前
Harness Engineering:为什么你用 AI 越用越累?
前端·后端·ai编程
小码哥_常10 小时前
为什么PUT和DELETE请求在大公司中逐渐被弃用?
后端
宫_商_角_徵11 小时前
动态代理到底在做什么?
后端
苍何11 小时前
我把微信 cli 开源了,群消息终于不用爬楼了!
后端