题目:
随机生成随机位数的验证码,包含大写字母,小写字母,数字
思路:
我们先定义一个生成验证码的方法,然后我们进行for循环,循环n次,就比如要生成5位的验证码,那我们就循环5次。接下来就是生成随机验证码。有三种情况(我们利用switch循环):
第一种:数字。我们生成0-9之间的随机数字。
第二种:大写字母。A-Z,对应的ASCII码为65-90。
第三种:小写字母。a-z,对应的ASCII码为97-122。
随机生成之后,再进行字符串的拼接,最后返回codes;
package Study;
import java.net.MulticastSocket;
import java.util.Random;
public class Create_code {
public static void main(String[] args) {
//4.生成验证码
String res=createCode(5);
System.out.println("生成的验证码为:"+res);
}
//1.定义一个方法返回一个随机验证码,n为生成几位的验证码
public static String createCode(int n) {
String codes="";
Random r=new Random();
//2.定义一个for循环,随机n次,随机生成字符
for(int i=0;i<n;i++) {
//3.生成随机字符,可能是数字,大写字母,小写字母
int num=r.nextInt(3);
switch(num) {
case 0:
//数字:0-9
codes+=r.nextInt(10);
break;
case 1:
//大写字母:A(65)-Z(65+25)
char ch1=(char)(r.nextInt(26)+65);
codes+=ch1;
break;
case 2:
//小写字母:a(97)-z(97+25)
char ch2=(char)(r.nextInt(26)+97);
codes+=ch2;
break;
}
}
return codes;
}
}
运行结果:
例如1:5位验证码
例如2:7位验证码
例如3:10位验证码