package org.fluxtream.core.utils;
import java.util.Random;
public class RandomString {
private static final char[] symbols = new char[36];
static {
for (int idx = 0; idx < 10; ++idx)
symbols[idx] = (char) ('0' + idx);
for (int idx = 10; idx < 36; ++idx)
symbols[idx] = (char) ('a' + idx - 10);
}
private final Random random = new Random();
private final char[] buf;
public RandomString(int length) {
if (length < 1)
throw new IllegalArgumentException("length < 1: " + length);
buf = new char[length];
}
private int nextRandom() {
synchronized(random) {
return random.nextInt(symbols.length);
}
}
public String nextString() {
synchronized (buf) {
for (int idx = 0; idx < buf.length; ++idx)
buf[idx] = symbols[nextRandom()];
}
return new String(buf);
}
}