2016-07-12 7 views
-5

Как создать упорядоченный последовательный уникальный идентификатор в программе java. Выходной сигнал должен быть: здесь выходной сигнал Mys2016vj01 на выходе 01 должен увеличиваться до года. после того, как год 2016 должен быть шагом к 2017 году так далее тогда, когда меняется год после постоянного числа VJ должны быть сброшены на 01Как создать упорядоченный порядковый номер в java

+0

я не получить любую идею, поэтому я опубликовал –

+1

, пожалуйста, просмотрите http://stackoverflow.com/help/how-to-ask – Abhishek

ответ

0
//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 

I want to get Year, Month, Day, etc from Java Date to compare with Gregorian Calendar date in Java. Is this possible?

 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. 

How can I pad an integers with zeros on the left?

 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 ; 
    } 
} 
Смежные вопросы