package com.Lucky.Util;
import java.util.ArrayList;
import java.util.Random;
/**
* 自定义的随机字符串工具类
*/
public class CodeUtil {
//方法
public static String StrCode(){
//创建集合,储存字符串的数据
ArrayList<Character> list=new ArrayList<>(); //charactor的范围: 0-51
//添加大小写字母
for (int i = 0; i < 26; i++) {
list.add((char) ('a'+i)); //强制转换为char类型 a-z
list.add((char) ('A'+i)); //强制转换为char类型 A-Z
}
//创建空字符串
String result="";
//创建随机对象
Random ran=new Random();
//遍历添加长度为4的随机字符串
for (int i = 0; i < 4; i++) {
//获取随机字符串的索引
int c=ran.nextInt(list.size());
//根据索引将随机值找到并添加到result中
char res=list.get(c);
result=result+res; //自动转换类型为String
}
//随机生成2位数数字并且拼接到result中
for (int i = 0; i < 2; i++) {
int num=ran.nextInt(10); //限定范围10以内
result=result+num; //自动转换类型为String
}
//要实现真正随机字符串,将result字符串的顺序进行打乱
//1.将字符串转换成char数组进行操作
char[] charLis=result.toCharArray();
//2.随机获取charLis数组的一个索引跟其他位置的索引位置进行互换
char temp=charLis[4]; //这里就将索引为4的数据找出来
//3.在char数组中随机选择一个索引跟temp的数据互换
int intNum=ran.nextInt(charLis.length);
charLis[4]=charLis[intNum];
charLis[intNum]=temp;
//4.重新将char转换回String字符串
String Str=new String(charLis);
//5.返回字符串
return Str;
}
}