【问题标题】:How to replace "\" with "" or empty? [duplicate]如何将“\”替换为“”或为空? [复制]
【发布时间】:2013-06-21 04:36:02
【问题描述】:

我想用

XmlReader.Create(aString);

读取 XML。但是这个aString中有很多“\”,导致错误:

路径中有非法字符。

所以我想用""替换所有"\"

我试过了:

aString.Replace("\", "");
aString.Replace("\\", "");
aString.Replace(@"\", "");
aString.Replace(@"\", string.Empty);

它们都不起作用。

【问题讨论】:

  • 我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
  • 确定反斜杠真的存在吗?如果是这样,您不应该先进行一些统一的转义,而不仅仅是反斜杠吗?另请注意,您当前忽略了Replace 的返回值,这不起作用。如果您能给我们提供更多背景信息,我们可能会提出更好的选择。
  • 出了什么问题?您是否将aString.Replace("\\",""); 的值重新分配给aString?
  • 一开始你是如何得到一个格式错误的字符串的?也许更好的解决方案是上游。
  • @"\""\\" 都应该可以工作。

标签: c# string replace


【解决方案1】:

您可能没有捕获输出 - Replace 没有修改 现有字符串 - 它返回 一个新字符串。试试:

aString = aString.Replace(@"\","");

【讨论】:

  • 这就是我看完OP后的想法
  • 这是我在我的代码中使用但不起作用的:string aString=model.wresult.ToString(); aString=aString.Replace(@"\",""); XmlReader reader=XmlReader.Create(aString);
  • 你输入的字符串是什么?您确定“\”字符是唯一的非法字符吗?
【解决方案2】:

您没有在任何地方分配String.Replace() 方法的输出。 Replace 方法不会修改对象。

【讨论】:

  • 这是我在我的代码中使用的,它不起作用:string aString=model.wresult.ToString(); aString=aString.Replace(@"\",""); XmlReader reader=XmlReader.Create(aString);
【解决方案3】:

我看到您的代码中有\"。这就是VisualStudio 显示的"。 (\ 在这种情况下是转义字符而不是实际字符。aString 中的数据是正确的,没有理由尝试从 aString 中删除 \。问题在于您对 aString 所做的事情,而不是aString 中的 \。

请注意:XmlReader.Create(aString); 从路径 aString 读取 XML 文件。 XmlDocument.LoadXml(string) 解析一个 XML 文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    相关资源
    最近更新 更多