如何在java中生成有序序列号
如何在java程序中生成有序的顺序唯一id。 输出应为: 这是样本输出Mys2016vj01在输出中,01应一直增加到今年。2016年后应增加至2017年,以此类推 然后,当年份在恒定vj数之后发生变化时,应将其重置为01如何在java中生成有序序列号,java,Java,如何在java程序中生成有序的顺序唯一id。 输出应为: 这是样本输出Mys2016vj01在输出中,01应一直增加到今年。2016年后应增加至2017年,以此类推 然后,当年份在恒定vj数之后发生变化时,应将其重置为01 //Initialize it as a static field in the class where you want to generate random number. private static final UniqueParamBuilder UNIQUE_PA
//Initialize it as a static field in the class where you want to generate random number.
private static final UniqueParamBuilder UNIQUE_PARAM_BUILDER = new UniqueParamBuilder();
public String buildNextUniqueNumber() {
//Params can be final depending on your context.
String param1 = "Mys";
String param2 = "vj";
int year = LocalDateTime.now().getYear();//Java 8. If Java 7, check this
我一点也不知道,所以我发了帖子请过目
String yearParam = year + "";
int uniqueNumber = UNIQUE_PARAM_BUILDER.getNext(year);
String uniqueParam = String.format("%01d", uniqueNumber); //Check this to see how start string with leading zeros.
String result = param1 + yearParam + param2 + uniqueParam;
return result;
}
public class UniqueParamBuilder {
private static final YEAR_TO_START = 2015;
private static final int START_CONTER = 0;
private int previousYear = YEAR_TO_START;
private int counter = START_CONTER ;
public int getNext(int year) {
if (year > previousYear) {
previousYear = year;
resetCounter();
}
counter++;//Start counter with 1.
return counter;
}
private void resetCounter() {
counter = START_CONTER ;
}
}