完成一个验证码生成器

要求能够随机生成0~9,a~z,A~Z之间长度为4位的验证码,并完成一个验证过程

模仿验证码的验证过程


import java.util.Scanner;
// 创建验证码类
public class Captcha {
//方法一:随机生成0--9的随机数
	public int math1() {
		return (int) (Math.random() * 10);
	}
//方法二:随机生成0--9的随机数
	public int math2() {
		return (int) (Math.random() * 10);
	}
//方法三:随机生成97——122的随机数 并且转化成char类型
//Ascall码对应(a(97)——z(122))
	public char word1() {
		return (char) ((Math.random() * (122 - 97 + 1)) + 97);
	}
//方法三:随机生成65——97的随机数 并且转化成char类型
//Ascall码对应(A(65)——Z(97))
	public char word2() {
		return (char) ((Math.random() * (90 - 65 + 1)) + 65);
	}
/**
*创建新的方法进行随机生成
*
*/
	public void random() {
		int a = 0;
		//定义一个字符串用来拼接随机生成的验证码
		String code = "验证码:";
		//循环四次,每次随机取一个值,共取四个值
		while (a < 4) {
			a++;
			int i = (int) (Math.random() * (4 - 1 + 1) + 1);
			switch (i) {
			case 1:
				int q = math1();
				String j = String.valueOf(q);
				code += j;
				break;
			case 2:
				int m = math2();
				String n = String.valueOf(m);
				code += n;
				break;
			case 3:
				char k = word1();
				String l = String.valueOf(k);
				code += l;
				break;
			case 4:
				char x = word2();
				String y = String.valueOf(x);
				code += y;
				break;
			}
		}
		//打印输出生成的验证码
		System.out.println(code);
		//让用户输入验证码
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入验证码(区分大小写):");
		//定义新的字符串v接受用户输入的验证码
		String v = sc.next();
		// 判断用户输入的字符串是否符合目标字符串
		if (code.contains(v)) {
			System.out.println("验证成功");
		} else {
			System.out.println("验证失败");
		}
	}
	public static void main(String[] args) {
		Captcha r = new Captcha();
		r.random();
	}
}

输出结果:完成一个验证码生成器
完成一个验证码生成器
问题蛮多,请多多请教!

匿名

发表评论

匿名网友

    • bronya0 bronya0

      评论