JAVA中生成随机验证码1 从控制台输入一个字符串大于20个字符2 从字符串中随机获取5个字符拼接成一个验证码扩展要求:验证码中不包含重复字符且每行需注释说明
1)从控制台输入一个字符串,大于20个字符 代码如下:
import java.util.Scanner;
public class RandomCode {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个大于20个字符的字符串:");
String str = sc.nextLine();
while (str.length() <= 20) {
System.out.println("字符串长度不够,请重新输入:");
str = sc.nextLine();
}
sc.close();
System.out.println("输入的字符串为:" + str);
}
}
2)从字符串中随机获取5个字符拼接成一个验证码 代码如下:
import java.util.Scanner;
import java.util.Random;
public class RandomCode {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个大于20个字符的字符串:");
String str = sc.nextLine();
while (str.length() <= 20) {
System.out.println("字符串长度不够,请重新输入:");
str = sc.nextLine();
}
sc.close();
System.out.println("输入的字符串为:" + str);
// 随机获取5个字符
Random random = new Random();
StringBuilder code = new StringBuilder();
while (code.length() < 5) {
int index = random.nextInt(str.length());
char ch = str.charAt(index);
if (code.indexOf(String.valueOf(ch)) == -1) {
code.append(ch);
}
}
System.out.println("生成的验证码为:" + code.toString());
}
}
扩展要求:验证码中不包含重复字符,且每行需注释说明 代码如下:
import java.util.Scanner;
import java.util.Random;
public class RandomCode {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个大于20个字符的字符串:");
String str = sc.nextLine();
while (str.length() <= 20) {
System.out.println("字符串长度不够,请重新输入:");
str = sc.nextLine();
}
sc.close();
System.out.println("输入的字符串为:" + str);
// 随机获取5个字符,不包含重复字符
Random random = new Random();
StringBuilder code = new StringBuilder();
while (code.length() < 5) {
// 随机获取一个位置
int index = random.nextInt(str.length());
// 获取该位置的字符
char ch = str.charAt(index);
// 判断验证码中是否已经包含该字符
if (code.indexOf(String.valueOf(ch)) == -1) {
// 若不包含,则将该字符添加到验证码中
code.append(ch);
}
}
System.out.println("生成的验证码为:" + code.toString());
}
}
原文地址: https://www.cveoy.top/t/topic/9nd 著作权归作者所有。请勿转载和采集!