java生成一定长度的随机字符串,并从中选出6个数字,不满时填0,生成6位验证码
这并不是实操,不过
生成随机字符串
useage工具类:
/**
* java生成随机数字和字母组合10位数
*
* @param length [生成随机数的长度]
* @return
*/
public static String getRandomNickname(int length) {
String val = "";
Random random = new Random();
for (int i = 0; i < length; i++) {
// 输出字母还是数字
String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
// 字符串
if ("char".equalsIgnoreCase(charOrNum)) {
// 取得大写字母还是小写字母
int choice = random.nextInt(2) % 2 == 0 ? 65 : 97;
val += (char) (choice + random.nextInt(26));
} else if ("num".equalsIgnoreCase(charOrNum)) { // 数字
val += String.valueOf(random.nextInt(10));
}
}
return val;
}
实际操作:
//生成30位随机字符串
String ans2 = useage.getRandomNickname(30);
String regex = "\\d*";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(encodeString_CBC);
String sumString = "";
while (m.find()) {
if (!"".equals(m.group())) {
sumString += m.group();
// System.out.println("发现数字:" + m.group());
}
}
// System.out.println(sumString);
sumString = (sumString + "000000").substring(0, 6);