通过简单的几行代码,模拟用户选车牌的业务场景,这边只是简单的获取随机车牌,没有任何业务交互!这边提供了2种方式获取随机车牌,首先是定义好字母数组和车牌数组,方式一是每个字符都是随机获取字母或数字,方式二是把字母和数字都放在集合种,每次都打乱集合的顺序,获取集合的前5个元素。个人觉得方式一更好些!
有兴趣的可以做一个延伸,例如:显示过的再一次执行的时候就直接过滤掉等
以下是源码:
public class CarNumberController {
private static Random random = new Random();
private static final String[] arr1 = {
"A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V","W","X","Y","Z"};
private static final String[] arr2 = {
"0","1","2","3","4","5","6","7","8","9"};
private static final boolean[] arr3 = {
false,true};
//获取随机字符(字母或数字)
public static String getSingleStr(boolean flag){
if (flag) {
return arr1[random.nextInt(arr1.length)];
} else {
return arr2[random.nextInt(arr2.length)];
}
}
//方式一
public static String method1(){
StringBuilder sb = new StringBuilder();
sb.append("苏U");
for (int j = 0; j < 5; j++) {
sb.append(getSingleStr(arr3[random.nextInt(arr3.length)]));
}
return sb.toString();
}
//方式二
public static String method2(){
List<String> list = new ArrayList<>();
list.addAll(Arrays.asList(arr1));
list.addAll(Arrays.asList(arr2));
Collections.shuffle(list);
StringBuilder sb = new StringBuilder();
sb.append("苏U");
for (int i = 0; i < 5; i++) {
sb.append(list.get(i));
}
return sb.toString();
}
public static void main(String[] args) {
List<String> list = new ArrayList<>(50);
for (int i = 0; i < 50; i++) {
list.add(method1());
// list.add(method2());
}
System.out.println(list);
}
}
运行结果如下: