【用java写的】随机生成验证码

导读:本篇文章讲解 【用java写的】随机生成验证码,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

日常生活中,我们很容易看到验证码,它们可以是纯数字,也可能是纯字母,还有的大多数应该为字母和数字混合。

然后我想着,能够写一个程序,随机生成5位的验证码,且满足前4位为大小写混合出现的字母,最后一位为数字,而且把这个随机生成验证码定义为一个方法,要生成的时候直接调用。

import java.util.Random;
//要求是生成5位验证码,前4位随机大小写,后一位为一位随机数字。
public class Yanzhengma {
    public static void main(String[] args) {
        System.out.println("随机生成的验证码为:");
        Yanzhengma();
    }
    public static void Yanzhengma(){
      Random r=new Random();
      int[]arr=new int[5];//定义一个长度为5的数组来存数据
        int c= r.nextInt(3)+1;  //随机出范围为1-3的数,作为循环的范围,这个范围即出现大写字母的范围
      for (int i = 0; i < c; i++) {
            int a= r.nextInt(26)+65; //查表可知,大写字母在ascll码中对应的十进制范围(65-90)
            arr[i]=a;
        }
      for (int k=(c+1);k<4;k++){  //从随机出的大写字母范围后,到索引为4之前就是小写字母的范围
        int d=r.nextInt(26)+97;//查表可知,小写字母在ascll码中对应的十进制范围(97-122)
        arr[k]=d;
      }
       int e= r.nextInt(9);
        arr[4]=e;
        for (int j = 0; j < 4; j++) {   
            System.out.print((char)arr[j]);  //遍历数组,并在输出时强制转换数据类型为char。
        }
        System.out.println(arr[4]);
    }
}

【用java写的】随机生成验证码

但是后来我发现,这样生成的验证码只有是大写连续出现,然后到小写,没有办法做到大小写交替出现,后面我就修改了一下,下面是完全符合要求的程序了

import java.util.Random;

public class Yanzhengma_puls {
    public static void main(String[] args) {
        Random r=new Random();
        char []arr=new char[52];
        for (int i = 0; i < 26; i++) {
                arr[i]=(char) (i+65);
        }
        int j=97;
        for (int i = 26; i < arr.length; i++) {
                 arr[i]=(char)j;
                 j++;
        }
        for (int i=0;i<=3;i++){
            int a= r.nextInt(52);
            System.out.print(arr[a]);
        }
        int b= r.nextInt(9);
        System.out.println(b);
    }

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/79502.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!