完全随机写法:随机获取的数据 概率获得(大小字母+数字+特殊字符)的字符串
public static void main(String[] args){
String val = "";
Random random = new Random();
for ( int i = 0; i < 12; i++ )
{
String str = random.nextInt( 2 ) % 2 == 0 ? "num" : "char";
if ( "char".equalsIgnoreCase( str ) )
{ // 产生字母
int nextInt = random.nextInt( 2 ) % 2 == 0 ? 65 : 97;
System.out.println(nextInt + "!!!!");
val += (char) ( nextInt+ random.nextInt( 25 ) );
}
else if ( "num".equalsIgnoreCase( str ) )
{
// 产生数字
val += String.valueOf( random.nextInt( 10 ) );
} else{
特殊字符//
val += String.valueOf( random.nextInt( 10 ) );
}
}
System.out.println(val);
}
自定义100%获取(大小字母+数字+特殊字符)的字符串:
public static void main(String[] args){
String val = "";
Random random = new Random();
for ( int i = 0; i < 12; i++ ){
if(i<4){
//获取大写字母
int nextInt = 65;
val += (char) (nextInt+random.nextInt( 25 ) );
}
if(i>=4 && i<7){
//获取数字
int nextInt = 48;
val += (char) (nextInt+random.nextInt( 9 ) );
}
if(i>=7 && i<8){
//获取特殊符号
int nextInt = 33;
val += (char) (nextInt+random.nextInt( 14 ) );
}
if(i>=8 && i<12){
//获取小写字符
int nextInt = 97;
val += (char) (nextInt+random.nextInt( 25 ) );
}
}
System.out.println(val);
}
思路:通过ASCLL表转字符(参考图)引用百度文库,仅供参考