Java实验 验证码

题目要求

使用String类和Random类随机生成一串数字验证码,模拟验证过程,用户有三次验证机会。

代码

package test4;

import java.util.Random;
import java.util.Scanner;

public class test1 {
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Random r = new Random();
		int num = r.nextInt(90000)+10000;//设置5位数的验证码
		String yzm = Integer.toString(num);//将int类型转化为String类型
		System.out.print("验证码为"+yzm);
		System.out.println();
		Scanner input = new Scanner(System.in);
		int x = 1;//循环变量
		while(x<=3) {
			System.out.print("第"+x+"次尝试输入验证码:");
			String y = input.next();//输入的验证码
			if(y.equals(yzm)) {
				System.out.println("输入成功!!!");
				break;
			}else if(x == 3) {
				System.out.println("输入错误,您已经没有机会了!!!");
				break;
			}else {
				System.out.println("输入错误,您还有"+(3-x)+"次机会!");
				x++;
			}
		}
        //当输入和验证码相同,则输出“输入成功!!!”,并跳出循环
        //输入和验证码不相同,且已经输入3次时,输出,停止循环
        //当输入和验证码不相同,且还没有输入3次时,输出,x++
		input.close();
	}
}

运行结果

验证码为49225
第1次尝试输入验证码:49222
输入错误,您还有2次机会!
第2次尝试输入验证码:49222
输入错误,您还有1次机会!
第3次尝试输入验证码:49222
输入错误,您已经没有机会了!!!

 

验证码为87587
第1次尝试输入验证码:87587
输入成功!!!

思考

如何生成英文字母和数字的混合验证码。

代码

package think4;

import java.util.Random;
import java.util.Scanner;

public class think1 {
	public static void main(String[] args) {
		String s = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
		char[] c = s.toCharArray();
		Random r = new Random();
		String sum = "";
		for(int i=0;i<5;i++) {
			sum = sum + c[r.nextInt(c.length)];
		}
		System.out.println("验证码为:"+sum);
		Scanner input = new Scanner(System.in);
		int x = 1;
		while(x<=3) {
			System.out.print("第"+x+"次尝试输入验证码(区分大小写):");
			String y = input.next();
			if(y.equals(sum)) {
				System.out.println("输入成功!!!");
				break;
			}else if(x == 3) {
				System.out.println("输入错误,您已经没有机会了!!!");
				break;
			}else {
				System.out.println("输入错误,您还有"+(3-x)+"次机会!");
				x++;
			}
		}
		input.close();
	}
}

运行结果

验证码为:goicC
第1次尝试输入验证码(区分大小写):goicc
输入错误,您还有2次机会!
第2次尝试输入验证码(区分大小写):goicc
输入错误,您还有1次机会!
第3次尝试输入验证码(区分大小写):goicc
输入错误,您已经没有机会了!!!
验证码为:DzWX1
第1次尝试输入验证码(区分大小写):DzWX1
输入成功!!!

个人代码如有错误,欢迎指正

posted @ 2022-05-21 00:00  柏木カケル  阅读(72)  评论(0)    收藏  举报