Допустим, у меня есть массив байтов,Преобразование массива байтов в строку и разбить строку
Byte[] arr;
Тогда я преобразовать массив в строку 1.
String inputString = "";
foreach (Byte b in arr)
{
if (b != 0)
inputString += (Char) b;
else inputString += " ";
}
Скажем, строка:
inputString = @"C:\Program Files\Test C:\Users\User A\AppData\Local\Temp C 32323 C:\Program Files\Test\Temp";
Я хочу, чтобы разбить на 4 строки, которые выглядят, как показано ниже:
C:\Program Files\Test \\position 0 = test folder
C:\Users\User A\AppData\Local\Temp \\position 1 = windows temp folder
C 32323 \\position 2 = a name. It can be C2313 or C 2312 or whatever string
C:\Program Files\Test\Temp \\position 3 = temp for test folder
\\ position can change by me...
каждая строка между будет разделена пробелом , Это означает, что я могу использовать .Split (''). Однако, как вы знаете, некоторые из путей имеют промежуток между ними, например, «C: \ Program Files \ Test».
Как я могу получить значения, которые я хочу?
Вы уверены, что у исходного 'byte []' не было '\ 0' между различными путями? Попробуйте изменить 'inputString + =" "' на 'inputString + =" | "' – xanatos
подстроки 'C: \ Users \ User A \ AppData \ Local \ Temp' и' C 32323'? после шаблона, это должна быть папка 'C: \ Users \ User A \ AppData \ Local \ Temp C 32323', не так ли? – ASh
@xanatos у него наверняка будет более одного \ 0 –