1.簡單for循環10次輸出值
源碼:for(int i=0;i<10;i++) { System.out.println("驗證碼:"+Math.random()); }
![]()
2.生成5個範圍爲[A,z](大小寫)的隨機驗證碼
思想:根據ASC2碼能夠知道在65-122爲大小寫順序,可是中間有一些符號。因而用判斷把這些符號排除掉源碼:public class RandomStr { public static void main(String[] args) { //定義一個空字符串 String result=""; for(int i=0;i<6;i++) { int intVal=(int)(Math.random()*57+65); //大寫到小寫間有一些符號,當等於這些符號的ASC2碼時候,則跳太重新循環。 if(intVal==91||intVal==92||intVal==93||intVal==94||intVal==95||intVal==96) { i--;//i回退一個數,每次遇到會特殊符號則從新循環 continue; } result=result+(char)intVal;//把結果拼接 } System.out.println(result); } }
結果:![]()
3.混合生成5位含有大小寫,數字的驗證碼
思想:利用一個整形數組保存好大寫,小寫,數字的ASC2碼。而後在利用這個整形數組生成隨機數源碼:public class RandomStr { public static void main(String[] args) { //定義一個空字符串 String result=""; //建立用於保存大寫小寫數字的整形數組 int number[]=new int[62]; //order爲累加器,在Asc2碼放入數組時候標記數組 int order=0; /* 分別把數字,大寫,小寫存入數組 */ for(int i=48;i<=57;i++) { number[order++]=i; } for(int i=97;i<=122;i++) { number[order++]=i; } for(int i=65;i<=90;i++) { number[order++]=i; } /* //測試輸出數組裏面的內容 for(int i=0;i<62;i++) { System.out.println(number[i]); }*/ //這個循環生成6位驗證碼 for(int i=0;i<6;i++) { //Math.random()返回爲float,須要轉換 int intVal=(int)(Math.random()*61+0);//生成0~61的隨機數 //把結果拼接,intVal用於數組下標 result=result+(char)number[intVal]; } System.out.println(result); } }結果![]()