最近项目中有个需求,新增时要生成一个ID,规范是:从0000开始,到0009时,下一个为000A,直到000Z,然后进一位再递增,同时要剔除”I”、”O”、”Z”。
例如:
新增一条数据,在数据库中的id应该为0001,再新增一条数据时,数据库中的id应该为0002,以此类推。
思路:id可以通过ASCII来转化。每次新增都要id都要递增,就要把之前生成的id存起来,然后下次新增时,调用工具类取出存入的id,然后自增。
浓缩小工具代码如下:
public class CreateCodeUtil {
public static String createCode(){
String temp = "0000";
char charArr[] = temp.toCharArray();
for(int i=charArr.length-1; i>=0; i--){
int no = charArr[i];
no++;
if(no==90){
charArr[i] = '0';
}else{
if(no==79 || no==73){
no++;
}else if(no==58){
no=65;
}
charArr[i] = (char)no;
break;
}
}
for(int i=0; i<charArr.length; i++){
code += String.valueOf(charArr[i]);
}
return code;
}
}