JAVA中生成随机验证码从控制台输入一个字符串大于20个字符从字符串中随机获取5个字符拼接成一个验证码 带详细注释扩展要求:验证码中不包含重复字符
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());
}
}
原文地址: https://www.cveoy.top/t/topic/9rm 著作权归作者所有。请勿转载和采集!