Java生成一个四位验证码

该文章介绍了一个Java代码示例,用于创建一个静态类,该类包含一个方法用于生成四位数字和字母混合的验证码。方法通过Math.random()生成随机数,并利用ASCII码对应字母和数字来确保验证码的混合性。如果生成的数值对应非字母数字字符,则重新生成。测试代码展示了类的使用并打印出生成的验证码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java数字、小写字母、大写字母混合验证码

思路:将其封装成一个静态类中的静态方法,调用方便。
方法实现:定义一个4位的字符类型的数组,利用for循环四次生成四位数字或者字母,在循环内部,利用数学函数Math.random()*58生成一个0-58之间的数字(包含0不包含58),再利用Math.floor()向下取整,获得0-57的整数,因为ascll码对照表60-90为26个大写字母,97-112为26个小写字母,所以将取到的整数再加上58,它的范围就变成了65-112,而由于大于90小于97的数字在ascll对照表上面对应的不是数字,所以如果取到这几个数字,就再次取0-9之间的整数,这样就做到了数字字母混合的四位验证码。

封装类

public class YZM {
    public static String getyzm(){
        char[] arrays = new char[4];
        for (int i = 0; i < 4; i++) {
            int num = (int)Math.floor(Math.random()*58)+65;
            if (num>90&&num<97) {
                num=(int)Math.floor(Math.random()*10);
                arrays[i]=Integer.toString(num).charAt(0);
                continue;
            }
            arrays[i]=(char)num;
        }
        return new String(arrays);
    }
}

测试代码

public class Test {
    public static void main(String[] args) {
        System.out.println(YZM.getyzm());
    }
}

运行结果

在这里插入图片描述
注意:如果不想要数字,可以将if里面的

num=(int)Math.floor(Math.random()*10);
arrays[i]=Integer.toString(num).charAt(0);

替换为

i --
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值