Java生成指定长度并且包含大小写字母数字字符串示例

public class JUID {
/**
* 随机生成输入长度的字符串,生成策略:前序列位[A-Z]-[0-9]-[a-z]{length/3},后余位随机
* @param length 所要生成的字符串长度
* @return String 生成的随机字符串
*/
public String createUID(int length){
if(length<3){//如果输入的长度小于3,那么就返回空字符串
return "";
}
char[] ss = new char[length];//存放生成的字符串
int i=0;
int index = 0;//索引位置
int standard = length/3;//前几位必须包含大小写字母数字
//标准随机策略,可做相应更改
while(i<standard) {
ss[index] = (char) ('A'+Math.random()*26);//随机一个大写字母
ss[index+1] = (char) ('0'+Math.random()*10); //随机一个数字
ss[index+2] = (char) ('a'+Math.random()*26); //随机一个小写字母
   i++;
   index = index+3;
   }
//后续位数随机生成
while(index<length){
int f = (int) (Math.random()*length);//生成随机长度数
   if(f>index-1)  
    ss[index] = (char) ('A'+Math.random()*26);
   else if(f>index-3)  
    ss[index] = (char) ('a'+Math.random()*26);
   else 
    ss[index] = (char) ('0'+Math.random()*10);
   index++;
}
return new String(ss);
}


/**
* @param args
*/
public static void main(String[] args) {
JUID juuid = new JUID();
int length = 3;
String str = juuid.createUID(length);
System.out.println(str);
}


}

猜你喜欢

转载自blog.csdn.net/anbernet/article/details/46788183