简体   繁体   中英

C# - Trimming string from first null terminator and onwards

I have a C# string "RIP-1234-STOP\\0\\0\\0\\b\\0\\0\\0???|B?Mp?\\0\\0\\0" returned from a call to a native driver.

How can I trim all characters from first null terminator '\\0\\ onwards. In this case, I just would like to have "RIP-1234-STOP".

Thanks.

Here is a method that should do the trick

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

  return input.Substring(0,index);
}

Try this:

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);

or simply:

var output = input.Substring(0, input.IndexOf('\0'));

This works too:

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);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM