import java.util.*;

public class RandomCodeGenerator {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入一个长度大于20的字符串:");
        String input = scanner.nextLine();
        // 判断输入是否合法
        if (input.length() <= 20) {
            System.out.println("输入字符串长度不足20,无法生成验证码!");
            return;
        }
        // 去重,只保留不重复的字符
        Set<Character> set = new HashSet<>();
        for (int i = 0; i < input.length(); i++) {
            set.add(input.charAt(i));
        }
        // 判断去重后的字符数量是否小于5,不足5个则无法生成验证码
        if (set.size() < 5) {
            System.out.println("输入字符串中不足5个不重复的字符,无法生成验证码!");
            return;
        }
        // 随机选择5个不重复的字符拼接成验证码
        List<Character> list = new ArrayList<>(set);
        Collections.shuffle(list);
        StringBuilder codeBuilder = new StringBuilder();
        for (int i = 0; i < 5; i++) {
            codeBuilder.append(list.get(i));
        }
        System.out.println("生成的验证码为:" + codeBuilder.toString());
    }
}
JAVA中生成随机验证码从控制台输入一个字符串大于20个字符从字符串中随机获取5个字符拼接成一个验证码 带详细注释扩展要求:验证码中不包含重复字符

原文地址: https://www.cveoy.top/t/topic/9rm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录