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
输入成功!!!
个人代码如有错误,欢迎指正

浙公网安备 33010602011771号