2017-01-25 6 views
1

Мне нужно сообщить Руководство, которое было сгенерировано в .NET для Java-приложения. Это мой GUIDКак преобразовать Microsoft GUID в JAVA UUID?

ce095552-b466-4d03-ac41-430ec9286806

, и я хочу, чтобы установить его UUID переменную!

UUID.nameUUIDFromBytes(stringUUID.getBytes()) 

UUID.fromString(stringUUID) 

Я получаю ошибку

Вызванный: java.lang.NumberFormatException: Invalid долго? "" Ce095552"

как я могу бросить GUID в UUID

+0

было бы лучше добавить сообщение об ошибке в вопрос, а не давать внешнюю ссылку – Crazyshezy

+0

UUIDs обычно представляют собой случайную строку отформатирован немного. Просто возьмите его как строку, не нужно его преобразовывать. – Robert

ответ

0

UUID.fromString() работает нормально:

String guid = "ce095552-b466-4d03-ac41-430ec9286806"; 
UUID uuid = UUID.fromString(guid); 

System.out.println(uuid); 
+0

ok, но я хочу получить GUID от JSON Recived из веб-службы и установить его в свой объект UUID-свойство! –

+0

@AsadKarami Не знаю, что вы имеете в виду. Вы получаете GUID в своем JSON как строку, нет? И каково ваше свойство UUID объекта? Просто поле участника типа 'java.util.UUID'? В чем проблема? Ваш вопрос задает вопрос о том, как преобразовать строку GUID в объект UUID и не предоставляет дополнительной информации. –

0

Invalid долго: "" ce095552"

Похоже GUID вы передаете к UUID.fromString прежнему включает в кавычки ("). Убедитесь, что строка GUID не содержит никаких дополнительных символов, и она должна работать.

0

Когда вы получаете некоторые Microsoft objectGUIDs, Active Directory ObjectGUID объекта группы, например, вы должны получить бинарный файл и затем преобразовать его в шестнадцатеричном после, то вам необходимо сгенерировать MS GUID (посмотреть на последовательность байтов порядка внутри convertToDashedString функция).

Порядок байт сравнения UUID и GUID отличается: попробуйте преобразовать его с помощью онлайн-конвертеры, как: robobunny converter

Теперь я хранения и работы с мс Guid

public static String convertMSGUIDToHexFormat(String guid){ 
    guid = guid.replaceAll("-", ""); 
    guid = guid.replaceAll("(.{8})(.{4})(.{4})(.{4})(.{12})", "$1-$2-$3-$4-$5").replaceAll("(.{2})(.{2})(.{2})(.{2}).(.{2})(.{2}).(.{2})(.{2})(.{18})", "$4$3$2$1-$6$5-$8$7$9"); 
    guid = guid.replaceAll("-", ""); 
    return guid; 
} 

public static String convertHexToMSGUIDFormat(String hex){ 
    return hex.replaceAll("(.{8})(.{4})(.{4})(.{4})(.{12})", "$1-$2-$3-$4-$5").replaceAll("(.{2})(.{2})(.{2})(.{2}).(.{2})(.{2}).(.{2})(.{2})(.{18})", "$4$3$2$1-$6$5-$8$7$9"); 
} 

Когда я знаю лучше, тогда я изменю это предполагаемое быстрое исправление