1从控制台输入一个字符串大于20个字符2从字符串中随机获取5个字符拼接成一个验证码扩展要求:验证码中不包含重复字符详细java
实现步骤:
- 从控制台输入一个字符串,使用Scanner类实现。
- 判断输入的字符串长度是否大于20个字符,如果小于20个字符,提示重新输入。
- 从输入的字符串中随机获取5个字符,可以使用Random类和charAt()方法。
- 判断随机获取的字符是否重复,如果有重复则重新获取,直到满足不重复的条件。
- 将随机获取的5个字符拼接成验证码并输出。
代码实现如下:
import java.util.Random;
import java.util.Scanner;
public class RandomCode {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个长度大于20的字符串:");
String str = scanner.nextLine();
while (str.length() <= 20) {
System.out.print("输入的字符串长度小于等于20,请重新输入:");
str = scanner.nextLine();
}
String code = generateCode(str);
System.out.println("验证码为:" + code);
}
public static String generateCode(String str) {
Random random = new Random();
StringBuilder code = new StringBuilder();
for (int i = 0; i < 5; i++) {
char c = str.charAt(random.nextInt(str.length()));
if (code.indexOf(String.valueOf(c)) == -1) {
code.append(c);
} else {
i--;
}
}
return code.toString();
}
}
运行效果:
请输入一个长度大于20的字符串:This is a test string.
验证码为:ngsTh
原文地址: https://www.cveoy.top/t/topic/62Q 著作权归作者所有。请勿转载和采集!