随机生成5位大小写字母或者数字
方法一:生成不重复的
public static void main(String[] args) {
Random rand = new Random();
char[] letters=new char[]{'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','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','r',
'0','1','2','3','4','5','6','7','8','9'};
String str = "";
int index;
boolean[] flags = new boolean[letters.length];//默认为false
for(int i=0;i<5;i++){
do{
index = rand.nextInt(letters.length);
}while(flags[index]==true);
char c = letters[index];
str += c;
flags[index]=true;
}
System.out.println(str);
}
方法二:生成重复的,与方法一类似
public static void main(String[] args) {方法三:生成重复的(建议选用此方法)
Random rand = new Random();
char[] letters=new char[]{'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','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','r',
'0','1','2','3','4','5','6','7','8','9'};
String str = "";
int index;
boolean[] flags = new boolean[letters.length];//默认为false
for(int i=0;i<5;i++){
do{
index = rand.nextInt(letters.length);
}while(flags[index]==true);
char c = letters[index];
str += c;
flags[index]=true;
}
System.out.println(str);
}
public static void main(String[] args) {
String str = "";
Random rand = new Random();
for(int i=0;i<5;i++){
int num = rand.nextInt(3);
switch(num){
case 0:
char c1 = (char)(rand.nextInt(26)+'a');//生成随机小写字母
str += c1;
break;
case 1:
char c2 = (char)(rand.nextInt(26)+'A');//生成随机大写字母
str += c2;
break;
case 2:
str += rand.nextInt(10);//生成随机数字
}
}
System.out.println("生成的5个随机验证码是:"+str);
}