怎么随机产生车牌号,求解释

不知道怎么写,想了一下午,不同类型的怎么弄到一块去。数字和字母,怎么随机放一块?纠结死了

  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]);
    }
}

}