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