java写一个验证码

生成验证码

内容:可以是小写字母,也可以是大写字母,还可以是数字

规则

长度为5

内容中是四位字母,1位数字。

其中数字只有1位,但是可以出现在任意的位置。

java 复制代码
package User;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class Test {
    public static void main(String[] args) {

        System.out.println(getcode());

    }

    private static String getcode() {
        //1.创建集合
        ArrayList<Character> list=new ArrayList<>();
        //将大小写字母放在集合list当中
        for (int i = 0; i < 26; i++) {
            list.add((char) ('a' + i));
            list.add((char) ('A' + i));
        }
       //获取4个随机验证码
        StringBuffer sb=new StringBuffer();
        Random r=new Random();
        for (int i = 0; i < 4; i++) {
            int index = r.nextInt(list.size());
            sb.append(list.get(index));

        }
        //System.out.println(sb);
        //获取一个数字
        int number = r.nextInt(10);
        sb.append(number);
        //打乱数字排序的地方
       char []arr= sb.toString().toCharArray();
        for (int i = 0; i < arr.length; i++) {
            int index = r.nextInt(arr.length);
            char tmp=arr[index];
            arr[index]=arr[i];
            arr[i]=tmp;
        }
        return new String(arr);
    }

}
相关推荐
wzdark3 小时前
基于链表的内存池设计与内存复用机制4
java·数据结构·链表
潜创微科技3 小时前
IT6520:USB-C 转 MIPI 高集成控制器,DP 1.4a 转 MIPI 单芯片搞定 4K120 显示
c语言·开发语言·低延迟·掌机·联阳
cnkeysky3 小时前
idea 中的 maven 项目重新加载子模块
java·idea
Escalating_xu3 小时前
【System V 信号量】从 P/V 原语到 Builder 封装:写出可控、可清理的进程互斥组件
java·linux·开发语言·jvm
今天AI了吗3 小时前
什么是 AI Agent?它与直接调用大模型 API 有何区别
java·网络·人工智能·架构·java-ee
傲世仙尊3 小时前
System V 进程间通信详解:共享内存、消息队列与信号量(CSDN博客)
linux·开发语言·c++
隐退山林3 小时前
JavaEE进阶:SpringAOP
java·java-ee
Wang's Blog3 小时前
Java框架快速入门: Spring Security+OAuth2之方法级安全注解
java·安全·spring
cvby4 小时前
C++11
开发语言·c++
JavacKaka4 小时前
LiteFlow规则引擎实战博客-2026-09-09
java