在编程开中怎么产生任意符号的验证码

2026-04-01 15:40:23

1、step1:新建一个类,本例类名[verificationCode],源代码如下 :

package myFiles_020;

/**

 * 本实例:产生验证码的源代码

 */

public class verificationCode {

    public static void main(String[] args) {

        char[] word = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',

                'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',

                'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',

                'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n',

                'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};

        //声明一个四位验证码的字符数组(提示多少个验证码字符就改vc数组的长度)

        char[] vc = new char[4];

        /*

        * for循环的目标是:每循环一次,找到word字符数组中的任意一个字符,把它赋给字符数组vc.

        * 循环完vc的长度,也就实现全部给vc字符数组赋值了。

        * */

        for (int i = 0; i < vc.length; i++) {

            //产生一个随机数,范围在0---61之间,因为word数组共有62个字符,数组索引从0开始,0--61共62个数。

            int number = (int) (Math.random() * 62);

            /*随机获取word字符数组中的任意一个字符。依次将它赋给字符数组vc,

              该for循环运行4次,vc数组也抽取到了word中的任意4个字符。

            * */

            vc[i] = word[number];

        }

        //创建一个字符串对象verificationNumber,将字符数组vc转成字符串verificationNumber.

        String verificationNumber = new String(vc);

        //把这个验证码打印在控制台上。

        System.out.println(verificationNumber);

    }

}

2、step2:运行结果,每运行一次,就产生一个验证码如下:

reT5

xtn5

fYjY

......

3、step3:小结

/*

* 小结:产生验证码的构思

*   1、第一步,定义一个字符数组,把你将来可能要产生的验证码的字符放在里面,当作一个元素。

*   2、第二步,实现从已定义好的字符数组中抽取任意的几个字符。

*      (1)用到随机数方法 Math.random()方法,把它产生的整数作为已定义好的字符数组的索引。 这样就达到任意抽取目标。

*          技巧:随机数方法,产生的是0至1以下,即[0,1)之间的任意double类型数据。怎么找到0到61之间的整数?(数据放大办法,类型强转办法!)

*      (2)抽取出来的字符要用一个变量来接收,这个变量要接收多个字符,而不是一个,所以这个 变量应该是字符数组。

*      (3)怎么才能达到多次接收呢?那就是for循环了。技巧在循环次数是怎么控制。

*   3、拓展思维:

     (1)将此源代码改进成一个独立的带有返回值类型的方法,就可以在别地方调用。

     (2)想产生什么样的字符就在已定义好的字符数组中修改或添加。

      (3)想产生多少个字符组成的验证码,可修改

            char[ ] vc = new char[4]; 修改这里的4为你想要的数。

* */

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢