需求说明:想生成8位不重复的编号,但又怕系统中间多次重启,导致初始化后,再次生成图片号重复的,所以每次重启先从26个字母中随机取2位字母,然后加6位数字,生成8位数,因为本次需求不是要求特高,故按如下:
public class NationalUtil {
static int loopNumber =100000;
static String[] ch = { "N","A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K",
"L", "M", "O", "P", "Q", "R", "S", "T", "U", "V", "W",
"X", "Y", "Z"};
static int i = (int)(Math.random()*(27));
static int j = (int)(Math.random()*(27));
static String prefix = ch[i]+ch[j];
public static String getNumbet(){
String photoNumber =loopNumber+"";
String end = photoNumber.substring(photoNumber.length() - 1);
if ("4".equals(end)) {
loopNumber++;
return prefix+loopNumber++;
} else {
return prefix+loopNumber++;
}
}
public static void main(String[] args) {
for (int i=0;i<50;i++){
System.out.println(getNumbet());
}
}
}
参考文档:https://blog.csdn.net/qq_39356867/article/details/85340722