Преобразовать строку в шестнадцатеричную строку в формате "\ x .. \ x .."? - PullRequest
0 голосов
/ 21 марта 2012

Я пытаюсь преобразовать строку с измененным GUID (например, 6b5737e5728786794fff5e009d74d706) в шестнадцатеричную строку с форматом, подобным \x..\x..

( Формат строки и шестнадцатеричные символы didn 'т работать на меня).Есть идеи?

1 Ответ

3 голосов
/ 21 марта 2012
Regex.Replace(myString, ".{2}", "\\x$0");

Если вы хотите пойти по маршруту без регулярных выражений, то может сработать следующее:

string s = "6b5737e5728786794fff5e009d74d70";
var sb = new StringBuilder($s.Length * 2);

for (int i = 0; i < s.Length; i+=2)
  sb.Append("\\x").Append(s.Substring(i, [Math]::Min(2, s.Length - i)));

string myNewString = sb.ToString();

Если вы хотите, чтобы ваша строка содержала (для вашего примера) кодовые точки U + 006B, U + 0057, U + 0037 и т. Д. тогда подумайте еще раз, пожалуйста. Строки не являются байтовыми контейнерами, они текст контейнеры. Вы хотите byte[] в этом случае:

byte[] byteArray = new byte[(s.Length + 1) / 2]
for (int i = 0; i < s.Length; i+=2)
  byteArray[i/2] = Convert.ToByte(s.Substring(i, [Math]::Min(2, s.Length - i)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...