我正在Windows应用程序上工作,在该应用程序中我从其中具有“ \”的函数中获取了名为“ strData”的字符串的值。我想用'\'分割该字符串,但是我不知道为什么'Split'函数不起作用。
string strData= "0101-0000046C\0\0\0"; //This Value comes from a function
string[] strTemp = strData.Split('\\');
return strTemp[0];
“ strTemp [0]”的值仍为“ 0101-0000046C \ 0 \ 0 \ 0”。请帮我
最佳答案
您的数据被解释为非转义字符串:这意味着代码文件中的所有\0
都将解析为ascii-char,其值为0(值-零字符)。
在您的情况下,您最终必须像这样替换value-zero-char:strData = strData.Replace("\0", "0\\");
然后它起作用。
说明:这将零值字符替换为数字零字符和反斜杠。
如前所述,您必须将源字符串转义为xxx\\0
或在字符串声明前写一个@
符号,如下所示:var x = @"xxx";
(仅理论上,第二种方法在这里不起作用,因为您说得到函数的值)。这在两种情况下通常都能解决您的问题。