需求:
定义方法实现随机产生一个5位的验证码,每位可能是数字,大写字母,小写字母
分析:
1.定义一个方法,生成验证码返回:方法参数是位数、方法的返回值类型是String 2.在方法内部使用for循环生成指定位数的随机字符,并连接起来 3.把连接好的随机字符作为一种验证码进行返回
具体代码如下:
1.定义方法返回验证码:是否需要返回值类型声明?String 是否需要申明形参:int n
public static String number(int n) {
2.定义一个for循环,循环n次,依次生成随机数
for (int i = 0; i < n; i++) {
3.定义一个字符串变量记录生成的随机字符生成一个随机字符:英文大写,英文小写,数字
String code = "";
Random r = new Random();
int type = r.nextInt(3);
4.进行分支判断,查看当前位置到底生成什么类型的字符
switch (type) {
case 0:
//大写字母 (A=65 Z=65+25) (0-25)+65
char ch = (char) (r.nextInt(26) + 65);
code += ch;
break;
case 1:
//小写字母 (a=97 z=97+25) (0-25)+97
char ch1 = (char) (r.nextInt(26) + 97);
code += ch1;
break;
case 2:
//数字
code += r.nextInt(10);
break;
}
//将字符变量进行返回
return code;
}
}
实现随机产生一个5位的验证码,调用方法
public static void main(String[] args) {
String code=number(5);
System.out.println(code);
}
完整代码如下:
package com.itheima.anli;
import java.util.Random;
public class Yanzhengma {
public static void main(String[] args) {
String code=number(5);
System.out.println(code);
}
public static String number(int n) {
String code = "";
Random r = new Random();
for (int i = 0; i < n; i++) {
int type = r.nextInt(3);
switch (type) {
case 0:
//大写字母 (A=65 Z=65+25) (0-25)+65
char ch = (char) (r.nextInt(26) + 65);
code += ch;
break;
case 1:
//小写字母 (a=97 z=97+25) (0-25)+97
char ch1 = (char) (r.nextInt(26) + 97);
code += ch1;
break;
case 2:
//数字
code += r.nextInt(10);
break;
}
}
return code;
}
}
随机验证码展示: