UUID libraries generate 32-character UUIDs.
I want to generate 8-character only UUIDs, is it possible?
I do not think that it is possible but you have a good workaround.
new Random(System.currentTimeMillis()).nextInt(99999999);
this will generate random ID up to 8 characters long. generate alphanumeric id:
char[] chars = "abcdefghijklmnopqrstuvwxyzABSDEFGHIJKLMNOPQRSTUVWXYZ1234567890".toCharArray();
Random r = new Random(System.currentTimeMillis());
char[] id = new char[8];
for (int i = 0; i < 8; i++) {
id[i] = chars[r.nextInt(chars.length)];
}
return new String(id);
It is not possible since a UUID is a 16-byte number per definition. But of course, you can generate 8-character long unique strings (see the other answers).
Also be careful with generating longer UUIDs and substring-ing them, since some parts of the ID may contain fixed bytes (e.g. this is the case with MAC, DCE and MD5 UUIDs).