C# 如何从字符串中删除\t字符

C# 如何从字符串中删除\t字符,c#,C#,我有一个字符串,其中包含一些不需要的字符,所以我想删除这些字符。我正在从xml文件中读取不需要的字符 "<UnwantedChars>\t,@</UnwantedChars>" sUnwantedChar = xml.ReadNodeValue("\UnwantedChars") 在最终结果中,@被删除,但选项卡即\t未被删除。问题是以下代码返回字符串“\t”(实际上,它是\\t),而不是字符'\t': string unwantedChar = sUnwantedC

我有一个字符串,其中包含一些不需要的字符,所以我想删除这些字符。我正在从xml文件中读取不需要的字符

"<UnwantedChars>\t,@</UnwantedChars>"

sUnwantedChar = xml.ReadNodeValue("\UnwantedChars")

在最终结果中,
@
被删除,但选项卡即
\t
未被删除。

问题是以下代码返回字符串
“\t”
(实际上,它是
\\t
),而不是字符
'\t'

string unwantedChar = sUnwantedChar.Split(',')[0];
你可以这样做:

if (unwantedChar.Equals(@"\t"))
    unwantedChar = "\t";
"<UnwantedChars>&#09;,@</UnwantedChars>"

您应该在XML中对选项卡进行编码,如下所示:

if (unwantedChar.Equals(@"\t"))
    unwantedChar = "\t";
"<UnwantedChars>&#09;,@</UnwantedChars>"
“	;,@”

否则,您将使用由两个字符组成的字符串
“\t”
,一个
反斜杠
和一个
t
,来填充替换,显然它不会工作。

xml的结构是什么?您是否检查了
sUnwantedChar
包含的内容?\t,@“如果您的代码能够工作,那么效率将非常低。您正在调用
String.Split()
两次。调用它一次并将结果分配给数组。然后使用数组。拆分字符串可能是一项代价高昂的操作。做多次没有意义。是的。。我的想法是一样的。我如何克服这个问题。我可以改变我的xml节点值而不是这样做吗?如果是的话,那么你能做什么,正如费莉斯·波拉诺所建议的。额外的好处是,您不必为每个可能的控制字符(如
\n
\r
等)硬编码异常。奥托,
&09不像
\t
那样容易理解。