随机生成指定长度的纯数字验证码
import java.util.Random;
/**
* 验证码工具类
*
* @author ghy
* @version 1.0
* @date 2022-08-16 14:15
*/
public class ValidateCodeUtils {
/**
* 源字符串,验证码中的内容来自己于这里
*/
private static final String CONTENT = "0123456789";
/**
* 随机类对象
*/
private static final Random RANDOM = new Random();
/**
* 生成指定长度的验证码
* @param length 验证码长度,必须是正整数
* @return
*/
public static String generateCode(int length) {
StringBuilder sbr = new StringBuilder();
if(length <= 0) {
throw new RuntimeException("验证码长度不能为负数");
}
for (int i = 0; i < length; i++) {
//随机生成一个 0-9 的正整数
int index = RANDOM.nextInt(10) ;
//从指定内容中获取指定下标的字符串
String str = CONTENT.substring(index, index + 1);
sbr.append(str);
}
return sbr.toString();
}
/**
* 测试生成验证码是否合理
* @param args
*/
public static void main(String[] args) {
for (int i = 0; i < 100; i++) {
System.out.println(generateCode(4));
}
}
}