Skip to content

Instantly share code, notes, and snippets.

@ptaylor
Created November 10, 2017 14:21
Show Gist options
  • Save ptaylor/9ad1a05e6c32cb189516cd080a4002c5 to your computer and use it in GitHub Desktop.
Save ptaylor/9ad1a05e6c32cb189516cd080a4002c5 to your computer and use it in GitHub Desktop.
User friendly random code generator
import java.security.SecureRandom;
import java.util.Random;
public class RandomCodeGenerator {
static final SecureRandom RANDOM = new SecureRandom();
static final char[] LETTERS = "ABCEFGHJKMNPQRSTWXYZ".toCharArray();
static final char[] NUMBERS = "0123456789".toCharArray();
static final int DEFAULT_NUM_CODES = 20;
public static void main(String[] args) {
int numCodes = DEFAULT_NUM_CODES;
if (args.length >= 1) {
numCodes = Integer.parseInt(args[0]);
}
System.out.println("======================================================");
System.out.println("");
for (int i = 0; i < numCodes; i++) {
System.out.println(" " + randomCode(RANDOM));
}
System.out.println("");
System.out.println("======================================================");
}
private static String randomCode(Random rng) {
StringBuilder sb = new StringBuilder();
randomTriplet(rng, sb);
sb.append('-');
randomTriplet(rng, sb);
sb.append('-');
randomTriplet(rng, sb);
sb.append('-');
randomTriplet(rng, sb);
return sb.toString();
}
private static StringBuilder randomTriplet(Random rng, StringBuilder sb) {
return sb.append(randomChar(rng, NUMBERS))
//.append(randomChar(rng, LETTERS))
.append(randomChar(rng, NUMBERS))
.append(randomChar(rng, NUMBERS));
}
private static char randomChar(Random rng, char[] alphabet) {
return alphabet[rng.nextInt(alphabet.length)];
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment