【问题标题】:C#: How to replace \\ with \C#:如何将 \\ 替换为 \
【发布时间】:2011-08-05 05:35:18
【问题描述】:

我有这个字符串 temp,我想用 \ 替换 \\

string temp = "\\h\\k";

我尝试过temp.Replace("\\", "\"),但输出为hk 我希望输出为\h\k

如何将"\\" 替换为"\"

谢谢

【问题讨论】:

  • temp.Replace("\\", "\") 是否编译?它不会抱怨“\”是一个不好的编译常量吗?

标签: c# string c#-4.0 escaping


【解决方案1】:

这个问题不太清楚,你在找这个吗?

string temp = @"\\h\\k";
temp = temp.Replace(@"\\", @"\");

【讨论】:

  • 不需要到处加@。字符串 temp = "\\h\\k"; temp.Replace("\\",@"\");
  • @manojlds:不,您的示例中 Replace 方法的两个参数现在完全相同。 "\\"@"\" 相同
  • 它给出了预期的输出。试图弄清楚发生了什么。也许,当我们说 temp.Replace("\\",@"\") 时,temp 本身变成了@"\h\k",它用 "\" 替换了 "\",我们得到了 "\h\ k" ?
  • 确实,您从错误的字符串开始 "\\h\\k" 实际上是 @"\h\k" 所以在您的示例中,您将单斜杠替换为单斜杠...
  • @sarsnake - 调试时,您会在“本地”视图中看到从“\\\\h\\\\k”到“\\h\\k”的临时变化。它确实有效。
【解决方案2】:

每次都需要转义斜线:

temp.Replace("\\\\", "\\")

【讨论】:

    【解决方案3】:
    temp.Replace("\\\\", "\\")
    

    应该可以的。

    【讨论】:

      【解决方案4】:

      怎么样:

      string temp = "\\h\\k";
      temp = temp.Replace("\\\\", "\\");
      

      【讨论】:

        猜你喜欢
        • 2020-12-30
        • 1970-01-01
        • 1970-01-01
        • 2018-09-15
        • 2011-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-18
        相关资源
        最近更新 更多