C# – обрезка строки от первого нулевого терминатора и далее
-
05-07-2019 - |
Вопрос
У меня есть строка C# «RIP-1234-STOP\0\0\0\b\0\0\0???|B?Mp?\0\0\0», возвращенная в результате вызова собственного драйвера.
Как я могу обрезать все символы, начиная с первого нулевого терминатора '\0\ и далее.В данном случае мне просто хотелось бы иметь «RIP-1234-STOP».
Спасибо.
Решение
Вот метод, который должен помочь
string TrimFromZero(string input)
{
int index= input.IndexOf('\0');
if(index < 0)
return input;
return input.Substring(0,index);
}
Другие советы
Попробуй это:
var input = "RIP-1234-STOP\0\0\0\b\0\0\0???|B?Mp?\0\0\0";
var firstNull = input.IndexOf('\0');
var output = input.Substring(0, firstNull);
или просто:
var output = input.Substring(0, input.IndexOf('\0'));
Это тоже работает:
var input = "RIP-1234-STOP\0\0\0\b\0\0\0???|B?Mp?\0\0\0";
var split = input.Split('\0');
var output = split[0];
Assert.AreEqual("RIP-1234-STOP", output);
Не связан с StackOverflow