C# – обрезка строки от первого нулевого терминатора и далее

StackOverflow https://stackoverflow.com/questions/1403524

  •  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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top