C # - обрезка строки от первого нулевого терминатора и далее - PullRequest
0 голосов
/ 10 сентября 2009

У меня есть строка C # "RIP-1234-STOP \ 0 \ 0 \ 0 \ b \ 0 \ 0 \ 0 ??? | B? Mp? \ 0 \ 0 \ 0", возвращенная из вызова нативному Водитель.

Как я могу обрезать все символы с первого нулевого терминатора '\ 0 \ и далее. В этом случае я просто хотел бы иметь «RIP-1234-STOP».

Спасибо.

Ответы [ 3 ]

11 голосов
/ 10 сентября 2009

Вот метод, который должен добиться цели

string TrimFromZero(string input)
{
  int index= input.IndexOf('\0');
  if(index < 0)
    return input;

  return input.Substring(0,index);
}
3 голосов
/ 10 сентября 2009

Попробуйте это:

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'));
0 голосов
/ 10 сентября 2009

Это тоже работает:

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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...