随机生成验证码(JAVA代码)
需求
定義方法實(shí)現(xiàn)隨機(jī)產(chǎn)生一個(gè)5位的驗(yàn)證碼,每位可能是數(shù)字,大寫字母,小寫字母。
分析
1.定義一個(gè)方法,生成驗(yàn)證碼返回:方法參數(shù)是位數(shù),方法的返回值類型是String;
2.在方法內(nèi)部使用for循環(huán)生成指定位數(shù)的隨機(jī)字符,并連接起來;
3.把連接好的隨機(jī)字符作為一組驗(yàn)證碼進(jìn)行返回。
正文:
導(dǎo)入生成隨機(jī)數(shù)的包
import javax.lang.model.element.NestingKind; import java.util.Random;定義一個(gè)方法返回一個(gè)隨機(jī)驗(yàn)證碼:(需要申明返回值類型:String ,需要申明參數(shù):int n)
public static String createRandomCode (int n) {}1.定義一個(gè)字符串變量記錄生成的隨機(jī)字符,創(chuàng)建一個(gè)隨機(jī)數(shù)對(duì)象
String code = ""; Random r = new Random();2.定義一個(gè)for循環(huán),循環(huán)n次,依次生成隨機(jī)字符
for (int i = 0; i < n; i++) {}3.在循環(huán)內(nèi)部,每次循環(huán)生成一個(gè)隨機(jī)字符:英文大寫 小寫 數(shù)字 (0, 1, 2)
int type = r.nextInt(3); //0, 1, 2switch (type) {case 0://大寫字符 (A 65 - Z 65 + 25) (0 - 25) + 65char ch1 = (char) (r.nextInt(26) + 65);code += ch1;break;case 1://小寫字符 (a 97 - Z 97 + 25) (0 - 25) + 97char ch2 = (char) (r.nextInt(26) + 97);code += ch2;break;case 2://大寫字符 (A 65 - Z 65 + 25) (0 - 25) + 65int ch3 = r.nextInt(10);code += ch3;break;4.循環(huán)結(jié)束后,返回String類型的變量即是所求的驗(yàn)證碼結(jié)果。
return code;定義一個(gè)主方法(main)接口,調(diào)用生成驗(yàn)證碼的方法,輸出結(jié)果。
public static void main(String[] args) {//調(diào)用獲取驗(yàn)證碼的方法得到一個(gè)隨機(jī)的驗(yàn)證碼String code = createRandomCode(5);System.out.println("隨機(jī)驗(yàn)證碼:" + code);}完整代碼:
/* 需求:定義方法實(shí)現(xiàn)隨機(jī)產(chǎn)生一個(gè)5位的驗(yàn)證碼,每位可能是數(shù)字,大寫字母,小寫字母*/import javax.lang.model.element.NestingKind; import java.util.Random;public class Demo3 {public static void main(String[] args) {//調(diào)用獲取驗(yàn)證碼的方法得到一個(gè)隨機(jī)的驗(yàn)證碼String code = createRandomCode(5);System.out.println("隨機(jī)驗(yàn)證碼:" + code);}/*1.定義一個(gè)方法返回一個(gè)隨機(jī)驗(yàn)證碼:是否需要申明返回值類型:String 是否需要申明參數(shù):int n*/public static String createRandomCode (int n) {//3.定義一個(gè)字符串變量記錄生成的隨機(jī)字符String code = "";Random r = new Random();//2.定義一個(gè)for循環(huán),循環(huán)n次,依次生成隨機(jī)字符for (int i = 0; i < n; i++) {//3.生成一個(gè)隨機(jī)字符:英文大寫 小寫 數(shù)字 (0, 1, 2)int type = r.nextInt(3); //0, 1, 2switch (type) {case 0://大寫字符 (A 65 - Z 65 + 25) (0 - 25) + 65char ch1 = (char) (r.nextInt(26) + 65);code += ch1;break;case 1://小寫字符 (a 97 - Z 97 + 25) (0 - 25) + 97char ch2 = (char) (r.nextInt(26) + 97);code += ch2;break;case 2://大寫字符 (A 65 - Z 65 + 25) (0 - 25) + 65int ch3 = r.nextInt(10);code += ch3;break;}}return code;} }運(yùn)行結(jié)果展示:
總結(jié):
1.定義一個(gè)String類型的變量存儲(chǔ)驗(yàn)證碼字符;
2.定義一個(gè)for循環(huán),循環(huán)n次;
3.隨機(jī)生成0,1,2的數(shù)據(jù),依次代表當(dāng)前位置要生成數(shù)字,大寫字母,小寫字母;
4.把0,1,2交給switch生成對(duì)應(yīng)類型的隨機(jī)字符,把字符交給String變量;
5.循環(huán)結(jié)束后,返回String類型的變量即是所求的驗(yàn)證碼結(jié)果。
總結(jié)
以上是生活随笔為你收集整理的随机生成验证码(JAVA代码)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP常用函数大全500+
- 下一篇: AD9361 介绍 (上)