不知道怎么写,想了一下午,不同类型的怎么弄到一块去。数字和字母,怎么随机放一块?纠结死了
int count = 0;
String carNo = "";
while(count<5){
long time = System.currentTimeMillis();
Random random = new Random(time);
String str = "abcdefghijklmnopqrstuvwxyz";
char str2 = str.charAt(random.nextInt(26));
int num = random.nextInt(10);
//字母与数字的概率相同
if (num<5) {
carNo += num;
}
else {
carNo += str2;
}
count++;
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
System.out.println("车牌号是:"+carNo);
把相关内容即可能产生的字符放到一个数组中,然后用生成的随机数作为数组的下标,通过下标输出最终结果
import java.util.Random;
public class RandomNum {
private char c[]=new char[26];//定义一个长度为26的字符数组
//构造函数
public RandomNum(){
this.setC(c);
}
public char[] getC() {//获得数组
return c;
}
public void setC(char c[]) {//初始化c[26]数组
for(int i=0;i c[i]=(char)(i+65);
}
}
@SuppressWarnings({ "null", "unused" })
public String[] getArray(){
//我这里写的是先产生两位字母,再产生三位数字,你可以适当修改
String str[]=new String[5];//定义一个长度为5的数组
for(int i=0;i if(i>=2)
//如果i>=2,随机产生10以内的数字
str[i]=(int)(Math.random()*10)+"";//最后的 +“”是因为str[i]是字符串
else
{
int ii=(int)(Math.random()*26);//产生26以内的随机数 //因为英文字母一共26个
str[i]=this.getC()[ii]+"";//最后的 +“”是因为str[i]是字符串
}
}
return str;
}
public static void main(String[] args){
RandomNum ran=new RandomNum();//新建一个ran对象
String str[]=ran.getArray();//调用RandomNum方法里的getArray()方法
for(int i=0;i<5;i++){
//输出结果
System.out.print(str[i]);
}
}
}