Encodera

Thanks for reading!

Donate to the site — we work hard for you.

How to generate a UUID

Short answer

A UUID is a 128-bit identifier that practically never repeats. UUID.randomUUID() creates a random one:

void main() {
    UUID id = UUID.randomUUID();
 
    IO.println(id);
    IO.println(id.version());
}

Output:

b5ab3a62-a3be-430f-9ccb-7ffef0718aff
4

The value is new every time; version 4 means "random".

From a string

UUID.fromString() parses the string form:

void main() {
    UUID id = UUID.fromString("3f2a6c1e-8b4d-4c7a-9e21-5d0f7b3a9c44");
    IO.println(id.toString().toUpperCase());
}

Output:

3F2A6C1E-8B4D-4C7A-9E21-5D0F7B3A9C44

The same UUID for the same name

nameUUIDFromBytes() always gives the same UUID for the same bytes:

void main() {
    byte[] name = "anna@site.com".getBytes(StandardCharsets.UTF_8);
 
    IO.println(UUID.nameUUIDFromBytes(name));
    IO.println(UUID.nameUUIDFromBytes(name).equals(UUID.nameUUIDFromBytes(name)));
}

Output:

7757f307-9840-333a-9f7c-2a03148241bc
true

Common mistake

Not validating the string before fromString(). An invalid string throws:

void main() {
    UUID.fromString("not-a-uuid");
}

Output:

Exception in thread "main" java.lang.IllegalArgumentException: Invalid UUID string: not-a-uuid

Functions used in this recipe

  • Random — A random number generator: integers in a range, decimals, booleans.

Thanks for reading!

Donate to the site — we work hard for you.