在编程开中怎么产生任意符号的验证码
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为你想要的数。
* */