首页 > 代码库 > 0914作业-----改进后的验证码生成器---生成4-8位可重复验证码
0914作业-----改进后的验证码生成器---生成4-8位可重复验证码
1 import java.util.Scanner; 2 import java.util.Random; 3 public class Text1 4 { 5 public static void main(String[] args) 6 { 7 Code code=new Code(); 8 code.start(); 9 }10 }11 class Code12 {13 char[] range=new char[62]; //定义验证码取值范围的数组14 char[] code; //定义验证码保存数组15 String codeRange; //定义用于保存验证码取值范围的变量16 String myCode; //定义存放验证码字符串的变量17 int state=1; //定义递归控制变量18 19 //获取验证码取值范围的方法实现20 public void range()21 {22 char a1=‘0‘;23 char a2=‘a‘;24 char a3=‘A‘;25 for(int i=0;i<range.length;i++)26 {27 if(i<10)28 {29 range[i]=a1; //验证码取值0-930 a1++;31 }32 if(i>=10&&i<36)33 {34 range[i]=a2; //验证码取值a-z35 a2++;36 }37 if(i>=36)38 {39 range[i]=a3; //验证码取值A-Z40 a3++;41 }42 }43 }44 //获取m-n范围内的随机数的方法实现,包含m,n本身45 public int randomRange(int m,int n)46 {47 Random random=new Random();48 int value=http://www.mamicode.com/random.nextInt(n-m)+m;49 return value;50 }51 //获取验证码52 public void code()53 {54 for(int i=0;i<code.length;i++)55 {56 code[i]=codeRange.charAt(randomRange(0,61));57 }58 }59 //获取用户输入并比较60 public void compare()61 { 62 63 code=new char[randomRange(4,8)]; //生成4-8随机数量的验证码保存数组64 65 code(); //生成验证码并保存到code数组66 myCode=new String(code); //将验证码转换为字符串,以方便比较67 68 System.out.println("验证码为:"+myCode);69 System.out.print("请按照上图中显示的字符输入验证码:");70 71 if(myCode.equals(new Scanner(System.in).nextLine()))72 {73 System.out.println("您的验证码输入正确");74 }else if(state!=5)75 { 76 System.out.println("您的验证码输入错误,您还有"+(5-state)+"次机会");77 state++;78 compare();79 }else if(state==5)80 {81 System.out.println("笨蛋,一次都不对!");82 }83 }84 //程序总开关85 public void start()86 {87 range(); //获取到验证码取值范围并保存到数组88 codeRange=new String(range); //将获取到的验证码取值范围转换为字符串,以方便截取89 compare(); //功能实现90 }91 }
0914作业-----改进后的验证码生成器---生成4-8位可重复验证码
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。