Поскольку вы, кажется, не обладаете большими знаниями в обработке строк, я приведу пример, который не требует, чтобы вы выучили слишком много вещей одновременно:
string input = "7900BD7400BD7500BD76A5FF";
string output = string.Empty;
for(int i=0; i<input.Length; i+=2) // Go in steps of 2
{
output += input[i]; // The first of 2 characters
output += input[i+1]; // The second of 2 characters
output += ' '; // The space
}
Console.WriteLine(output);
Обратите внимание, что это решение вставляет пробелы только после каждого второго символа. Он не проверяет, все ли это шестнадцатеричные коды и кратна ли его длина 2. Предполагается, что любой предыдущий код генерирует действительный результат. Вы должны убедиться, что с юнит-тестами.
Этот подход не очень эффективен для длинных строк (если у вас длинный текст, узнайте о StringBuilder ).
Если вы следовали этому совету для создания шестнадцатеричных данных , то, конечно, гораздо проще вставить пробел сразу:
public static string ByteArrayToString(byte[] ba)
{
StringBuilder hex = new StringBuilder(ba.Length * 2);
foreach (byte b in ba)
hex.AppendFormat("{0:X2} ", b); // <-- I inserted a space in the format string
return hex.ToString();
}