用java生成6位验证码,要求字母大小写数字组成,不能重复字符

2025-02-26 06:41:17
推荐回答(4个)
回答1:

public class GenerateRandomLetterAndNum {
public static void main(String[] args) {

Set store = getletterandnum(6);

printSet(store);

}

public static Set getletterandnum(int length) {

Set set =new HashSet();

for (int i = 0; i < length; i++) {

String value = getrandom();

set.add(value);
}

if (set.size()
String value = getrandom();//继续调用生成随机数的方法

set.add(value);

}

return set;
}

private static String getrandom() { //生成随机字母和数字方法

String value = "";

Random random = new Random();

int gen = random.nextInt(2);//0、1、2

String charornum = gen % 2 == 0 ? "char" : "num";

if ("char".equals(charornum)) {

int temp = random.nextInt(2) % 2 == 0 ? 65 : 97;

int ascii = random.nextInt(26);

value += (char) (ascii + temp);

} else if ("num".equalsIgnoreCase(charornum)) {

value += String.valueOf(random.nextInt(10));
}
return value;
}

public static void printSet(Set set){ //打印set的方法

Iterator iterator = set.iterator();
while (iterator.hasNext()) {
String ele = (String) iterator.next();
System.out.print(ele+" ");

}

}

回答2:

表达式转换类
${expression}计算expression并输出
#{ expression }数字计算#{ expression ;format}安格式输出数字format为M和m
M表示小数点后最多的位数,m表示小数点后最少的位数如#{121.2322;m2M2}输出121.23 !

回答3:

有些长,给你个可以直接使用的验证码,你可以改下长度,
http://www.cnblogs.com/wufengxyz/archive/2011/12/04/2275489.html

回答4:

用random生成随机数