【问题标题】:How to replace a string path in C#如何在 C# 中替换字符串路径
【发布时间】:2011-07-28 07:23:56
【问题描述】:
string = @"http://192.168.30.40/mylytica/Uploads/EncryptedFile/whg_12_20_2010.pdf";
if (strEncrypt.Contains("/EncryptedFile"))
{
     strEncrypt.Replace(@"/EncryptedFile", @"/DecryptedFile");
}
iFrame_pdf.Attributes.Add("src", strEncrypt);

它对我不起作用:( 我需要将文件路径 Encrypted 替换成 Decrypted

提前致谢

【问题讨论】:

    标签: string c#-2.0


    【解决方案1】:

    .NET 字符串是不可变的,因此Replace() 返回一个新字符串。

    这样做:

    string strEncrypt = @"http://192.168.30.40/mylytica/Uploads/EncryptedFile/whg_12_20_2010.pdf";    
    if (strEncrypt.Contains("/EncryptedFile"))    
    {    
      strEncrypt = strEncrypt.Replace(@"/EncryptedFile", @"/DecryptedFile");
    }
    

    另外:如果strEncrypt 类似于"http://192.168.30.40/mylytica/Uploads/EncryptedFile/EncryptedFile.pdf",请记住考虑结果应该是什么。

    【讨论】:

      【解决方案2】:

      字符串是不可变的,因此您需要将新字符串分配给变量:

      strEncrypt = strEncrypt.Replace(@"/EncryptedFile", @"/DecryptedFile");

      【讨论】:

      • 这个差点投了票,只是变量名不一样:)
      • 你看起来不够近:)?
      【解决方案3】:

      你需要改变这个:

      strEncrypt.Replace(@"/EncryptedFile", @"/DecryptedFile");
      

      到这里:

      strEncrypt = strEncrypt.Replace(@"/EncryptedFile", @"/DecryptedFile");
      

      来自关于 String.Replace 的 Microsoft 文档 (http://msdn.microsoft.com/en-us/library/fk49wtc1.aspx):

      注意 此方法不会修改当前实例的值。相反,它返回一个新字符串,其中所有出现的 oldValue 都被 newValue 替换。

      【讨论】:

        【解决方案4】:

        字符串 strEncrypt = @"http://192.168.30.40/mylytica/Uploads/EncryptedFile/whg_12_20_2010.pdf";
        if (strEncrypt.Contains("EncryptedFile"))
        {
        strEncrypt = strEncrypt.Replace(@"EncryptedFile", @"DecryptedFile"); }

        【讨论】:

          猜你喜欢
          • 2011-01-20
          • 2019-09-04
          • 2018-06-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多