我有一個C#字符串「RIP-1234-STOP \ 0 \ 0 \ 0 \ b \ 0 \ 0 \ 0 ??? | B?Mp?\ 0 \ 0 \ 0「從調用返回到本機驅動程序。C# - 從第一個空終止符開始修剪字符串
如何從第一個空終止符'\ 0 \開始修剪所有字符。在這種情況下,我只想要「RIP-1234-STOP」。
謝謝。
我有一個C#字符串「RIP-1234-STOP \ 0 \ 0 \ 0 \ b \ 0 \ 0 \ 0 ??? | B?Mp?\ 0 \ 0 \ 0「從調用返回到本機驅動程序。C# - 從第一個空終止符開始修剪字符串
如何從第一個空終止符'\ 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'));
當然,如果找不到'\ 0',這個解決方案會拋出一個ArgumentOutOfRangeException。 – RKitson 2009-09-10 19:50:05
這工作太:
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);
+1是唯一不會過度使用var關鍵字的答案。 – Guffa 2009-09-10 06:07:24
heh,所以真的... – Philippe 2009-09-10 09:13:48
好方法肯定。很難相信,使用'var'而不是'int'會導致可讀性降低。 – RKitson 2009-09-10 19:52:55