思路:验证码一般包括数字和字母。数字和字母之间可以用ASCLL值进行转换,所以数字的范围是6590或97122。
public static void main(String[]args){
for(int i=0;i<4;i++){
int n=(int)(Math.random()(91-65))+65;
char m=(char)n;
System.out.print(m);
}
}
运行结果:DEHV
如果是生成一个六位的验证码,且有数字和字母,则我们可以规定生成2个数字,4个字母,将数字随机的插入字母中。
public static void main(String[]args){
String result="";
char a[];
a=new char[6];
for(int i=0;i<4;i++){
int n=(int)(Math.random()(91-65))+65;
char m=(char)n;
result=result+m;
a[i]=m;
}
//随机生成一个0到4的数
int a1=(int)(Math.random()(5-0))+0;
//随机生成一个0到5的数
int a2=(int)(Math.random()(6-0))+0;
//随机生成两个0~10的数
int b1=(int)(Math.random()(11-0))+0;
int b2=(int)(Math.random()(11-0))+0;
if(a14){
result=result+b1;
if(a25){
result=result+b2;
}
}
if(a10){
result=b1+result;
if(a25){
result=result+b2;
}
else if(a20){
result=b2+result;
}
else if(a2>0&&a2<5){
for(int i=0;i<a2;i++){
System.out.print(a[i]);
}
System.out.println(a2);
for(int i=a2+1;i<6;i++){
System.out.println(a[i]);
}
}
}
if(a14){
result=result+b1;
if(a25){
result=result+b2;
}
else if(a20){
result=b2+result;
}
else if(a2>0&&a2<5){
for(int i=0;i<a2;i++){
System.out.print(a[i]);
}
System.out.println(a2);
for(int i=a2+1;i<6;i++){
System.out.println(a[i]);
}
}
}
if(a1>0&&a1<4){
for(int i=0;i<a1;i++){
System.out.print(a[i]);
}
System.out.println(a2);
for(int i=a1+1;i<4;i++){
System.out.println(a[i]);
}
if(a25){
result=result+b2;
}
else if(a20){
result=b2+result;
}
else if(a2>0&&a2<5){
for(int i=0;i<a2;i++){
System.out.print(a[i]);
}
System.out.println(a2);
for(int i=a2+1;i<6;i++){
System.out.println(a[i]);
}
}
}
}