📜  C#| Replace()方法

📅  最后修改于: 2021-05-29 14:46:12             🧑  作者: Mango

在C#中, Replace()方法是一个字符串方法。此方法用于替换当前字符串对象中的所有指定的Unicode字符或指定的字符串,并返回新的修改后的字符串。可以通过向其传递参数来重载该方法。

句法:

public string Replace(char Oldchar, char Newchar)
or
public string Replace(string Oldvalue, string Newvalue)

解释:
第一种方法需要两个参数Oldchar和Newchar,其中Oldchar是要更换的Unicode字符和Newchar是更换OldChar所有出现的字符。
第二种方法还采用两个参数Oldvalue和Newvalue,其中Oldvalue是要替换的字符串,Newvalue是用于替换所有出现的Oldvalue的字符串。这两个方法的返回类型值为System.String

例外情况:

  • ArgumentNullException :如果OldValue或Oldchar均为null。
  • ArgumentException如果OldValue或Oldchar是空字符串(“”)。

下面是演示上述方法的程序:

  • 示例1:演示公共字符串Replace(char Oldchar,char Newchar)方法的程序。所有出现的指定字符都将替换为另一个指定字符。如果在当前字符串对象中未找到oldChar,则字符串保持不变。
    Input : str  = "GeeksForGeeks"
            str.Replace('s', 'G');
    Output: GeekGForGeekG
    
    Input : str  = "GeeksForGeeks"
            str.Replace('e', ' ');
    Output: G  ksForG  ks
    
    // C# program to illustrate the Replace()
    // Method with character parameter
    using System;
      
    class Geeks {
      
        // Main Method
        public static void Main()
        {
      
            // string
            String str = "Geeks For Geeks";
      
            Console.WriteLine("OldString : " + str);
      
            // replace the character 's' with 'G'
            Console.WriteLine("NewString: " + str.Replace('s', 'G'));
      
            // oldString will remain unchanged
            // its return the modified string
            Console.WriteLine("\nOldString: " + str);
      
            // replace the character 'e' with space ' '
            Console.WriteLine("NewString: " + str.Replace('e', ' '));
        }
    }
    
    输出:
    OldString : Geeks For Geeks
    NewString: GeekG For GeekG
    
    OldString: Geeks For Geeks
    NewString: G  ks For G  ks
    
  • 示例2:演示公共字符串Replace(字符串 Oldvalue, 字符串 Newvalue)方法的程序。当前字符串实例中所有出现的指定字符串都将替换为另一个指定字符串。如果在当前字符串未找到Oldvalue,则字符串保持不变。
    Input:  str  = "Geeks For Geeks"
            str.Replace("Geeks", "---");
    Output: --- For ---
    
    Input:  str  = "Geeks For Geeks"
            str.Replace("For", "GFG");
    Output: Geeks GFG Geeks
    
    // C# program to illustrate the Replace
    // Method with string parameter
    using System;
      
    class Geeks {
      
        // Main Method
        public static void Main()
        {
      
            // define string
            String str = "Geeks For Geeks";
      
            Console.WriteLine("OldString : " + str);
      
            // replace the string 'Geeks' with '---'
            // in string 'Geeks comes two time so replace two times
            Console.WriteLine("NewString: " + str.Replace("Geeks", "---"));
      
            // oldString will remain unchanged
            // its return the modified string
            Console.WriteLine("\nOldString: " + str);
      
            // replace the string 'For' with 'GFG'
            Console.WriteLine("NewString: " + str.Replace("For", "GFG"));
        }
    }
    
    输出:
    OldString : Geeks For Geeks
    NewString: --- For ---
    
    OldString: Geeks For Geeks
    NewString: Geeks GFG Geeks
    

要对字符串(替换链)执行多次替换操作:

上面的Replace()方法返回修改后的字符串,因此现在我们可以将对Replace方法的连续调用链接在一起,以对该字符串执行多次替换。方法调用从左到右执行。
在下面的示例中,对于给定的字符串“ XXXXX”,首先将X替换为Y,然后将Y替换为Z,最后将Z替换为A。

例子 :

// C# program to demonstrate the 
// multiple replacements calls
using System;
  
public class Geeks{
  
    // Main Method
    public static void Main()
    {
        String str = "XXXXX";
        Console.WriteLine("Old String: " + str);
  
        // chain together
        str = str.Replace('X', 'Y').Replace('Y', 'Z').Replace('Z', 'A');
        Console.WriteLine("New string: " + str);
    }
}
输出:
Old String: XXXXX
New string: AAAAA

要记住的要点:

  • Replace()方法不会修改当前实例的值。相反,它将返回一个新字符串,其中所有出现的Oldvalue均被Newvalue替换,类似地,oldchar被Newchar替换。
  • 它执行区分大小写的搜索以查找OldValue或Oldchar。如果Newvalue为null,则将删除所有出现的Oldvalue。

参考:

  • https://msdn.microsoft.com/zh-CN/library/czx8s9ts(v=vs.110).aspx
  • https://msdn.microsoft.com/zh-CN/library/fk49wtc1(v=vs.110).aspx