Возникла проблема, очень похожая на эту: Как читать .NET Guid в Java UUID .
За исключением того, что из удаленного svc я получаю шестнадцатеричную строку в следующем формате: ABCDEFGH-IJKL-MNOP-QRST-123456
.
Мне нужно сопоставить GUID.ToByteArray () сгенерированный байтовый массив .net GH-EF-CD-AB-KL-IJ-OP-MN- QR- ST-12-34-56
в Java для целей хеширования.
Я немного растерялся, как разобрать это. Должен ли я отрезать часть QRST-123456
и, возможно, использовать что-то вроде Commons IO EndianUtils на другой части, а затем соединить вместе 2 массива? Кажется, слишком сложно.
Я могу изменить последовательность, но я не должен был делать ничего из этого. Мистер Гугл мне тоже не хочет помогать ..
Кстати, какова логика на Литтл-Эндиане, которая сохраняет эти последние 6 символов неизменными?
Да, для справки, вот что я сделал {извините за 'ответ', но не смог правильно отформатировать его в комментарии}:
String s = "3C0EA2F3-B3A0-8FB0-23F0-9F36DEAA3F7E";
String[] splitz = s.split("-");
String rebuilt = "";
for (int i = 0; i < 3; i++) {
// Split into 2 char chunks. '..' = nbr of chars in chunks
String[] parts = splitz[i].split("(?<=\\G..)");
for (int k = parts.length -1; k >=0; k--) {
rebuilt += parts[k];
}
}
rebuilt += splitz[3]+splitz[4];
Я знаю, это взломано, но подойдет для тестирования.