Преобразование строки в форматированную строку UUID

Есть ли какой-либо служебный метод для преобразования простой строки в форматированную строку UUID?

Например:

Обычная строка: f424376fe38e496eb77d7841d915b074

Строка в формате UUID: f424376f-e38e-496e-b77d-7841d915b074

Я просто хотел преобразовать в формат UUID без использования какой-либо логики Java, поэтому искал предопределенную утилиту, доступную в пакетах java.lang, java.util или Apache и т. Д.


person Paramesh Korrakuti    schedule 17.09.2014    source источник
comment
А если поставить тире?   -  person 0x47686F7374    schedule 17.09.2014


Ответы (1)


Вы можете просто использовать String.format следующим образом:

String plain = "f424376fe38e496eb77d7841d915b074";
String uuid = String.format("%1$-%2$-%3$-%4$", plain.substring(0,7), plain.substring(7,11), plain.substring(11,15), plain.substring(15,20));

Или с дополнительными библиотечными методами, использующими Apache Commons Codec (класс org.apache.commons.codec.binary.Hex) и JDK (класс java.util.UUID):

byte[] data = Hex.decodeHex("f424376fe38e496eb77d7841d915b074".toCharArray());
String uuid = new UUID(ByteBuffer.wrap(data, 0, 8).getLong(), ByteBuffer.wrap(data, 8, 8).getLong()).toString();
person Vladimír Schäfer    schedule 17.09.2014