//公司做活动,需要批量生成n个不重复多位验证码,简单写了个小程序,在这做个记录,今后有空可以继续优化
public static void main(String[] args) {
String validateCode = "";
//已存在的验证码
int i=0;
Map codeMap = new HashMap();
while(i<50000){//生成n个验证码
validateCode = getRandom(6);
System.out.print("i==" + i + "===");
System.out.println(validateCode);
//判断生成的验证码是否存在,不存在则写到map
if("".equals(codeMap.get(validateCode)) || codeMap.get(validateCode)==null){
codeMap.put(validateCode,validateCode);
i++;
}
}
/* Set set = codeMap.entrySet();
Iterator it = set.iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
String key = (String) entry.getKey();
String value = (String) entry.getValue();
System.out.println(key + "=" + value);
}*/
}
private static String getRandom(int codeCount) {
StringBuffer randomCodeRes = new StringBuffer();
char[] codeSequenceChar = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
'X', 'Y', 'Z','0', '1', '2', '3', '4', '5', '6', '7', '8', '9'
};
// 创建一个随机数生成器类
Random random = new Random();
//随机产生,验证码由几个数字、几个字母组成
int charNum =6;
for (int i = 0; i < charNum; i++) {
// 得到随机产生的验证码字母。
String strRand = String.valueOf(codeSequenceChar[random.nextInt(codeSequenceChar.length)]);
// 将产生的六个随机数组合在一起。
randomCodeRes.append(strRand);
}
return randomCodeRes.toString();
}