在登录中常常会需要用到验证码,那你知道如何生成随机的验证码码?
本次的需求是生成一个由字母和数字组成的验证码,其中字母可以大小写或者重复需占4为大小,数字为0-9中的任意一个,只占1位大小,但是数字的位置可以任何位置,主要思路就是将需要用到的元素存入数组当中,其次运用随机生成数的方式生成随机索引,在对应的数组中获得对应的数据,最后再将数据进行拼接,就可以得到我们需求的验证码了!具体实现如下:
1:生成52个字母,将其存入一个集合当中
public static char[] createAlpha(){
char[] arr = new char[52];
for (int i = 0; i < arr.length; i++) {
//当i小于26时,插入a-z
if(i<26){
arr[i] = (char)('a' + i);
}
//当i大于26时,插入A-Z
else
arr[i] = (char)('A'+ i -26);
}
return arr;
}
2.生成随机的数字
public static int createNum(){
//random的规则:包头不包尾,生成0-9的数字
int x = r.nextInt(10);
return x;
}
3.生成随机索引,将上诉生成的数据进行拼接
public static String createVatifaction(char[]arr,int num){
String str = "";
for (int i = 0; i < 4; i++) {
int index = r.nextInt(arr.length);
str += arr[index];
}
str += num;
return str;
}
4.因为数字能够为任何位置,所以定义一个打乱字符串的方法
public static String toRandom(String str){
char[]arr = str.toCharArray();
for (int i = 0; i < arr.length; i++) {
char temp = ' ';
int index = r.nextInt(arr.length);
temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
}
// for (int i = 0; i < arr.length; i++) {
// System.out.println(arr[i]);
// }
String newstr = new String(arr);
return newstr;
}
5.编写测试类进行测试
static Random r = new Random();
public static void main(String[] args) {
char[]arr = createAlpha();
int num = createNum();
String str = createVatifaction(arr,num);
str = toRandom(str);
System.out.println(str);
}
最后输入的就为题目所要求的验证码了,效果图如下:
文章来源:https://www.toymoban.com/news/detail-514242.html
完整代码如下:文章来源地址https://www.toymoban.com/news/detail-514242.html
import java.util.Random;
public class vatifyCreate {
static Random r = new Random();
public static void main(String[] args) {
char[]arr = createAlpha();
int num = createNum();
String str = createVatifaction(arr,num);
str = toRandom(str);
System.out.println(str);
}
public static char[] createAlpha(){
char[] arr = new char[52];
for (int i = 0; i < arr.length; i++) {
if(i<26){
arr[i] = (char)('a' + i);
}
else
arr[i] = (char)('A'+ i -26);
}
return arr;
}
public static int createNum(){
int x = r.nextInt(10);
return x;
}
public static String createVatifaction(char[]arr,int num){
String str = "";
for (int i = 0; i < 4; i++) {
int index = r.nextInt(arr.length);
str += arr[index];
}
str += num;
return str;
}
public static String toRandom(String str){
char[]arr = str.toCharArray();
for (int i = 0; i < arr.length; i++) {
char temp = ' ';
int index = r.nextInt(arr.length);
temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
}
// for (int i = 0; i < arr.length; i++) {
// System.out.println(arr[i]);
// }
String newstr = new String(arr);
return newstr;
}
}
到了这里,关于Java案例----生成随机验证码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!