1. 程式人生 > >Java基礎------生成一個六位數的驗證碼(包含大寫字母、小寫字母、數字,並且不允許重復)?

Java基礎------生成一個六位數的驗證碼(包含大寫字母、小寫字母、數字,並且不允許重復)?

參考 數組 rand 定義 ole ava length log post

問題描述:生成一個六位數的驗證碼(包含大寫字母、小寫字母、數字,並且不允許重復)?

參考代碼如下:

import java.util.Arrays;
import java.util.Random;

public class VerifCode{
public static void main(String[] args) {
//1. 生成驗證碼能取到的所有合法字符的數組
String[] letters={"0","1","2","3","4","5","6","7","8","9",
"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"};
int len=letters.length;

//2.定義一個數組,用來標識letters數組中已經被使用過的字符,被使用過的字符不能夠被再次使用
boolean[] flags=new boolean[len]; //註意:boolean類型的數組每一項的默認值為false

Random ran=new Random();


//3.定義一個數組,用來存放生成的驗證碼
String[] chs=new String[6];
for(int i=0;i<chs.length;i++){
int num=0;
//生成一個沒有被使用過的字符
do{
num=ran.nextInt(len);
}while(flags[num]);
chs[i]=letters[num];
flags[num]=true;
}

System.out.println("生成的六位的驗證碼為:"+Arrays.toString(chs));

}
}

Java基礎------生成一個六位數的驗證碼(包含大寫字母、小寫字母、數字,並且不允許重復)?