- package day05;
- import java.util.Scanner;
- import java.util.Arrays;
- import java.util.Random;
- public class Demo01
- {
- //入口函数
- public static void main(String[]Args)
- {
- Scanner scanner=new Scanner(System.in);
- char[] chr1=new char[5];
- yzm(chr1);
- System.out.println("验证码为:"+Arrays.toString(chr1));
- //获取用户输入然后去掉空格然后把输入的字母转换为大写
- String user_sr=scanner.next().trim().toUpperCase();
- //将用户输入转换成字符数组
- char[] chr2=user_sr.toCharArray();
- //调用方法szdb 进行两个字符数组的对比;
- boolean bool= szdb(chr1,chr2);
- if(bool)
- {
- System.out.println("验证成功");
- }
- else
- {
- System.out.println("验证失败");
- }
- }
- //验证码生成模块(形参:chr表示一个char[])
- public static void yzm(char[]chr)
- {
- //初始化随机数函数
- Random random=new Random();
- //yzmchi(验证码池)注:为避免阅读困难池内没有1,2,l,z等字符
- char[]yzmchi={'3','4','5','6','7','8','9','A','B','C','D'
- ,'E','F','G','H','J','K','M','N','P','Q','R'
- ,'S','T','U','V','W','X','Y'};
- //标签数组用于标记是否重复
- boolean[] bool=new boolean[yzmchi.length];
- //循环给形参装入随机数据(每一位上的数据不能重复)
- //生成随机数
- int index=0;
- int i=0;
- do
- {
- index=random.nextInt(yzmchi.length-1);
- if(bool[index]==false&&i<=chr.length-1)
- {
- chr[i++]=yzmchi[index];
- bool[index]=true;
- }
- }while(bool[index]);
- }
- //对比数组模块(形参:chr1数组a,chr2数组b 返回值:bool为最终结果TRUE为一致)
- public static boolean szdb(char[]chr1,char[]chr2)
- {
- boolean bool=false;
- if(chr1.length==chr2.length){
- int index=0;
- for(int i=0;i<=chr1.length-1;i++)
- {
- for(int j=0;j<=chr2.length-1;j++)
- {
- char a1=chr1[i];
- char a2=chr2[j];
- if(a1==a2 )
- {
- if(i==j)
- {
- index++;
- //System.out.println(chr1[i]+" "+chr2[j]);//测试
- }
- }
- }
- }
- if(index==chr1.length)
- {
- bool=true;
- }
- else
- {
- bool=false;
- }
- }
- return bool ;
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/1507201410004.html
来源: http://www.codesnippet.cn/detail/1507201410004.html