栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

随机生成验证码(JAVA代码)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

随机生成验证码(JAVA代码)

需求

定义方法实现随机产生一个5位的验证码,每位可能是数字,大写字母,小写字母。

分析

1.定义一个方法,生成验证码返回:方法参数是位数,方法的返回值类型是String;
2.在方法内部使用for循环生成指定位数的随机字符,并连接起来;
3.把连接好的随机字符作为一组验证码进行返回。

正文: 导入生成随机数的包
import javax.lang.model.element.NestingKind;
import java.util.Random;
定义一个方法返回一个随机验证码:(需要申明返回值类型:String ,需要申明参数:int n)
public static String createRandomCode (int n) {}

1.定义一个字符串变量记录生成的随机字符,创建一个随机数对象

String code = "";
Random r = new Random();

2.定义一个for循环,循环n次,依次生成随机字符

for (int i = 0; i < n; i++) {}

3.在循环内部,每次循环生成一个随机字符:英文大写 小写 数字 (0, 1, 2)

			int type = r.nextInt(3);   //0, 1, 2
            switch (type) {
                case 0:
                    //大写字符 (A 65 - Z 65 + 25)   (0 - 25) + 65
                    char ch1 = (char) (r.nextInt(26) + 65);
                    code += ch1;
                    break;
                case 1:
                    //小写字符 (a 97 - Z 97 + 25)   (0 - 25) + 97
                    char ch2 = (char) (r.nextInt(26) + 97);
                    code += ch2;
                    break;
                case 2:
                    //大写字符 (A 65 - Z 65 + 25)   (0 - 25) + 65
                    int ch3 = r.nextInt(10);
                    code += ch3;
                    break;

4.循环结束后,返回String类型的变量即是所求的验证码结果。

return code;
定义一个主方法(main)接口,调用生成验证码的方法,输出结果。
public static void main(String[] args) {
        //调用获取验证码的方法得到一个随机的验证码
        String code = createRandomCode(5);
        System.out.println("随机验证码:" + code);
    }
完整代码:

import javax.lang.model.element.NestingKind;
import java.util.Random;

public class Demo3 {
    public static void main(String[] args) {
        //调用获取验证码的方法得到一个随机的验证码
        String code = createRandomCode(5);
        System.out.println("随机验证码:" + code);
    }

    
    public static String createRandomCode (int n) {
        //3.定义一个字符串变量记录生成的随机字符
        String code = "";
        Random r = new Random();
        //2.定义一个for循环,循环n次,依次生成随机字符
        for (int i = 0; i < n; i++) {
            //3.生成一个随机字符:英文大写 小写 数字 (0, 1, 2)
            int type = r.nextInt(3);   //0, 1, 2
            switch (type) {
                case 0:
                    //大写字符 (A 65 - Z 65 + 25)   (0 - 25) + 65
                    char ch1 = (char) (r.nextInt(26) + 65);
                    code += ch1;
                    break;
                case 1:
                    //小写字符 (a 97 - Z 97 + 25)   (0 - 25) + 97
                    char ch2 = (char) (r.nextInt(26) + 97);
                    code += ch2;
                    break;
                case 2:
                    //大写字符 (A 65 - Z 65 + 25)   (0 - 25) + 65
                    int ch3 = r.nextInt(10);
                    code += ch3;
                    break;
            }
        }
    return code;
    }
}

运行结果展示:

总结:

1.定义一个String类型的变量存储验证码字符;
2.定义一个for循环,循环n次;
3.随机生成0,1,2的数据,依次代表当前位置要生成数字,大写字母,小写字母;
4.把0,1,2交给switch生成对应类型的随机字符,把字符交给String变量;
5.循环结束后,返回String类型的变量即是所求的验证码结果。

暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016345.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号