package eu.swiec.bearballin.generators; import java.util.Random; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class SimpleIdSerialGenerator { private final static Random RAND = new Random(); public static String nextID() { final StringBuilder letters = new StringBuilder(4); final StringBuilder digits = new StringBuilder(7); final StringBuilder idSerial = new StringBuilder(14); final int[] weights = {7, 3, 1, 7, 3, 1, 7, 3}; int checksum = 0; int nextD = 0; char letter; int letterVal; for (int i = 0; i < 3; i++) { letter = (char) (RAND.nextInt('Z' - 'A') + 'A'); letters.append(letter); letterVal = ((int) letter - 55); checksum += weights[i] * letterVal; } for (int i = 3; i < 8; i++) { nextD = RAND.nextInt(10); digits.append(nextD); checksum += weights[i] * nextD; } idSerial.append(letters); idSerial.append(checksum % 10); idSerial.append(digits); return idSerial.toString(); } public static void main(final String[] args) { final Logger LOGGER = LoggerFactory.getLogger(""); for (int i = 0; i < 100; i++) { LOGGER.info(SimpleIdSerialGenerator.nextID()); } } }