我正在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";(仅理论上,第二种方法在这里不起作用,因为您说得到函数的值)。这在两种情况下通常都能解决您的问题。

10-08 00:15