Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как сгенерировать UUID

Короткий ответ

UUID — 128-битный идентификатор, который практически не повторяется. UUID.randomUUID() создаёт случайный:

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

Результат:

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

Значение каждый раз новое; версия 4 означает «случайный».

Из строки

UUID.fromString() разбирает строковую запись:

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

Результат:

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

Одинаковый UUID для одного имени

nameUUIDFromBytes() всегда даёт один и тот же UUID для одних и тех же байтов:

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)));
}

Результат:

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

Частая ошибка

Не проверить строку перед fromString(). Неверная строка вызывает исключение:

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

Результат:

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

Функции из этого ответа

  • Random — Генератор случайных чисел: целые в диапазоне, дробные, boolean.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.