StringBuilder.Replace 方法

定义

将此实例中指定字符或字符串的所有匹配项替换为另一个指定的字符或字符串。

重载

Replace(Char, Char)

将此实例中指定字符的所有匹配项替换为另一个指定字符。

Replace(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

将此生成器中的一个只读字符范围的所有实例替换为另一个实例。

Replace(String, String)

将此实例中指定字符串的所有匹配项替换为另一个指定的字符串。

Replace(Char, Char, Int32, Int32)

替换在此实例的子字符串中,将指定字符的所有匹配项替换为另一个指定字符。

Replace(ReadOnlySpan<Char>, ReadOnlySpan<Char>, Int32, Int32)

将一个只读字符跨度的所有实例替换为此生成器的一部分。

Replace(String, String, Int32, Int32)

替换在此实例的子字符串中,将指定字符串的所有匹配项替换为另一个指定的字符串。

示例

以下示例演示 Replace 方法。

using namespace System;
using namespace System::Text;
void Show( StringBuilder^ sbs )
{
   String^ rule1 = "0----+----1----+----2----+----3----+----4---";
   String^ rule2 = "01234567890123456789012345678901234567890123";
   Console::WriteLine( rule1 );
   Console::WriteLine( rule2 );
   Console::WriteLine( "{0}", sbs );
   Console::WriteLine();
}

int main()
{
   
   //                  0----+----1----+----2----+----3----+----4---
   //                  01234567890123456789012345678901234567890123
   String^ str = "The quick br!wn d#g jumps #ver the lazy cat.";
   StringBuilder^ sb = gcnew StringBuilder( str );
   Console::WriteLine();
   Console::WriteLine( "StringBuilder.Replace method" );
   Console::WriteLine();
   Console::WriteLine( "Original value:" );
   Show( sb );
   sb->Replace( '#', '!', 15, 29 ); // Some '#' -> '!'
   Show( sb );
   sb->Replace( '!', 'o' ); // All '!' -> 'o'
   Show( sb );
   sb->Replace( "cat", "dog" ); // All "cat" -> "dog"
   Show( sb );
   sb->Replace( "dog", "fox", 15, 20 ); // Some "dog" -> "fox"
   Console::WriteLine( "Final value:" );
   Show( sb );
}

/*
This example produces the following results:

StringBuilder.Replace method

Original value:
0----+----1----+----2----+----3----+----4---
01234567890123456789012345678901234567890123
The quick br!wn d#g jumps #ver the lazy cat.

0----+----1----+----2----+----3----+----4---
01234567890123456789012345678901234567890123
The quick br!wn d!g jumps !ver the lazy cat.

0----+----1----+----2----+----3----+----4---
01234567890123456789012345678901234567890123
The quick brown dog jumps over the lazy cat.

0----+----1----+----2----+----3----+----4---
01234567890123456789012345678901234567890123
The quick brown dog jumps over the lazy dog.

Final value:
0----+----1----+----2----+----3----+----4---
01234567890123456789012345678901234567890123
The quick brown fox jumps over the lazy dog.

*/
using System;
using System.Text;

class Sample
{
    public static void Main()
    {
//                0----+----1----+----2----+----3----+----4---
//                01234567890123456789012345678901234567890123
    string str = "The quick br!wn d#g jumps #ver the lazy cat.";
    StringBuilder sb = new StringBuilder(str);

    Console.WriteLine();
    Console.WriteLine("StringBuilder.Replace method");
    Console.WriteLine();

    Console.WriteLine("Original value:");
    Show(sb);

    sb.Replace('#', '!', 15, 29);        // Some '#' -> '!'
    Show(sb);
    sb.Replace('!', 'o');                // All '!' -> 'o'
    Show(sb);
    sb.Replace("cat", "dog");            // All "cat" -> "dog"
    Show(sb);
    sb.Replace("dog", "fox", 15, 20);    // Some "dog" -> "fox"

    Console.WriteLine("Final value:");
    Show(sb);
    }

    public static void Show(StringBuilder sbs)
    {
    string rule1 = "0----+----1----+----2----+----3----+----4---";
    string rule2 = "01234567890123456789012345678901234567890123";

    Console.WriteLine(rule1);
    Console.WriteLine(rule2);
    Console.WriteLine("{0}", sbs.ToString());
    Console.WriteLine();
    }
}
/*
This example produces the following results:

StringBuilder.Replace method

Original value:
0----+----1----+----2----+----3----+----4---
01234567890123456789012345678901234567890123
The quick br!wn d#g jumps #ver the lazy cat.

0----+----1----+----2----+----3----+----4---
01234567890123456789012345678901234567890123
The quick br!wn d!g jumps !ver the lazy cat.

0----+----1----+----2----+----3----+----4---
01234567890123456789012345678901234567890123
The quick brown dog jumps over the lazy cat.

0----+----1----+----2----+----3----+----4---
01234567890123456789012345678901234567890123
The quick brown dog jumps over the lazy dog.

Final value:
0----+----1----+----2----+----3----+----4---
01234567890123456789012345678901234567890123
The quick brown fox jumps over the lazy dog.

*/
open System.Text

let show (sbs: StringBuilder) =
    let rule1 = "0----+----1----+----2----+----3----+----4---"
    let rule2 = "01234567890123456789012345678901234567890123"
    printfn $"{rule1}\n{rule2}\n{sbs}\n"

//         0----+----1----+----2----+----3----+----4---
//         01234567890123456789012345678901234567890123
let str = "The quick br!wn d#g jumps #ver the lazy cat."
let sb = StringBuilder str

printfn "StringBuilder.Replace method\n"

printfn "Original value:"
show sb

sb.Replace('#', '!', 15, 29) |> ignore // Some '#' -> '!'
show sb
sb.Replace('!', 'o') |> ignore // All '!' -> 'o'
show sb
sb.Replace("cat", "dog") |> ignore // All "cat" -> "dog"
show sb
sb.Replace("dog", "fox", 15, 20) |> ignore // Some "dog" -> "fox"

printfn "Final value:"
show sb

// This example produces the following results:
//       StringBuilder.Replace method
//
//       Original value:
//       0----+----1----+----2----+----3----+----4---
//       01234567890123456789012345678901234567890123
//       The quick br!wn d#g jumps #ver the lazy cat.
//
//       0----+----1----+----2----+----3----+----4---
//       01234567890123456789012345678901234567890123
//       The quick br!wn d!g jumps !ver the lazy cat.
//
//       0----+----1----+----2----+----3----+----4---
//       01234567890123456789012345678901234567890123
//       The quick brown dog jumps over the lazy cat.
//
//       0----+----1----+----2----+----3----+----4---
//       01234567890123456789012345678901234567890123
//       The quick brown dog jumps over the lazy dog.
//
//       Final value:
//       0----+----1----+----2----+----3----+----4---
//       01234567890123456789012345678901234567890123
//       The quick brown fox jumps over the lazy dog.
Imports System.Text

Class Sample
   Public Shared Sub Main()
      '                    0----+----1----+----2----+----3----+----4---
      '                    01234567890123456789012345678901234567890123
      Dim str As String = "The quick br!wn d#g jumps #ver the lazy cat."
      Dim sb As New StringBuilder(str)
      
      Console.WriteLine()
      Console.WriteLine("StringBuilder.Replace method")
      Console.WriteLine()
      
      Console.WriteLine("Original value:")
      Show(sb)
      
      sb.Replace("#"c, "!"c, 15, 29)   ' Some '#' -> '!'
      Show(sb)
      sb.Replace("!"c, "o"c)           ' All '!' -> 'o'
      Show(sb)
      sb.Replace("cat", "dog")         ' All "cat" -> "dog"
      Show(sb)
      sb.Replace("dog", "fox", 15, 20) ' Some "dog" -> "fox"
      Console.WriteLine("Final value:")
      Show(sb)
   End Sub
   
   Public Shared Sub Show(sbs As StringBuilder)
      Dim rule1 As String = "0----+----1----+----2----+----3----+----4---"
      Dim rule2 As String = "01234567890123456789012345678901234567890123"
      
      Console.WriteLine(rule1)
      Console.WriteLine(rule2)
      Console.WriteLine("{0}", sbs.ToString())
      Console.WriteLine()
   End Sub
End Class
'
'This example produces the following results:
'
'StringBuilder.Replace method
'
'Original value:
'0----+----1----+----2----+----3----+----4---
'01234567890123456789012345678901234567890123
'The quick br!wn d#g jumps #ver the lazy cat.
'
'0----+----1----+----2----+----3----+----4---
'01234567890123456789012345678901234567890123
'The quick br!wn d!g jumps !ver the lazy cat.
'
'0----+----1----+----2----+----3----+----4---
'01234567890123456789012345678901234567890123
'The quick brown dog jumps over the lazy cat.
'
'0----+----1----+----2----+----3----+----4---
'01234567890123456789012345678901234567890123
'The quick brown dog jumps over the lazy dog.
'
'Final value:
'0----+----1----+----2----+----3----+----4---
'01234567890123456789012345678901234567890123
'The quick brown fox jumps over the lazy dog.
'

Replace(Char, Char)

Source:
StringBuilder.cs
Source:
StringBuilder.cs
Source:
StringBuilder.cs

将此实例中指定字符的所有匹配项替换为另一个指定字符。

public:
 System::Text::StringBuilder ^ Replace(char oldChar, char newChar);
public System.Text.StringBuilder Replace (char oldChar, char newChar);
member this.Replace : char * char -> System.Text.StringBuilder
Public Function Replace (oldChar As Char, newChar As Char) As StringBuilder

参数

oldChar
Char

要替换的字符。

newChar
Char

替换 oldChar的字符。

返回

对此实例的引用,oldChar 替换为 newChar

注解

此方法执行序号区分大小写的比较,以识别当前实例中 oldChar 的出现次数。 替换后,当前 StringBuilder 实例的大小保持不变。

适用于

Replace(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

Source:
StringBuilder.cs

将此生成器中的一个只读字符范围的所有实例替换为另一个实例。

public:
 System::Text::StringBuilder ^ Replace(ReadOnlySpan<char> oldValue, ReadOnlySpan<char> newValue);
public System.Text.StringBuilder Replace (ReadOnlySpan<char> oldValue, ReadOnlySpan<char> newValue);
member this.Replace : ReadOnlySpan<char> * ReadOnlySpan<char> -> System.Text.StringBuilder
Public Function Replace (oldValue As ReadOnlySpan(Of Char), newValue As ReadOnlySpan(Of Char)) As StringBuilder

参数

oldValue
ReadOnlySpan<Char>

要替换的只读字符范围。

newValue
ReadOnlySpan<Char>

要替换为 oldValue 的只读字符范围。

返回

注解

如果 newValue 为空,则会从此生成器中删除 oldValue 实例。

适用于

Replace(String, String)

Source:
StringBuilder.cs
Source:
StringBuilder.cs
Source:
StringBuilder.cs

将此实例中指定字符串的所有匹配项替换为另一个指定的字符串。

public:
 System::Text::StringBuilder ^ Replace(System::String ^ oldValue, System::String ^ newValue);
public System.Text.StringBuilder Replace (string oldValue, string newValue);
public System.Text.StringBuilder Replace (string oldValue, string? newValue);
member this.Replace : string * string -> System.Text.StringBuilder
Public Function Replace (oldValue As String, newValue As String) As StringBuilder

参数

oldValue
String

要替换的字符串。

newValue
String

替换 oldValuenull的字符串。

返回

对此实例的引用,其中 oldValue 的所有实例都替换为 newValue

例外

oldValue null

oldValue 的长度为零。

放大此实例的值将超过 MaxCapacity

注解

此方法执行序号区分大小写的比较,以识别当前实例中 oldValue 的出现次数。 如果 newValuenullString.Empty,则会删除所有 oldValue

另请参阅

适用于

Replace(Char, Char, Int32, Int32)

Source:
StringBuilder.cs
Source:
StringBuilder.cs
Source:
StringBuilder.cs

替换在此实例的子字符串中,将指定字符的所有匹配项替换为另一个指定字符。

public:
 System::Text::StringBuilder ^ Replace(char oldChar, char newChar, int startIndex, int count);
public System.Text.StringBuilder Replace (char oldChar, char newChar, int startIndex, int count);
member this.Replace : char * char * int * int -> System.Text.StringBuilder
Public Function Replace (oldChar As Char, newChar As Char, startIndex As Integer, count As Integer) As StringBuilder

参数

oldChar
Char

要替换的字符。

newChar
Char

替换 oldChar的字符。

startIndex
Int32

此实例中子字符串开始的位置。

count
Int32

子字符串的长度。

返回

对此实例的引用,oldChar 替换为从 startIndexstartIndex + count -1 范围内的 newChar

例外

startIndex + count 大于此实例值的长度。

-或-

startIndexcount 小于零。

注解

此方法执行序号区分大小写的比较,以识别当前实例中 oldChar 的出现次数。 替换后,当前 StringBuilder 对象的大小保持不变。

适用于

Replace(ReadOnlySpan<Char>, ReadOnlySpan<Char>, Int32, Int32)

Source:
StringBuilder.cs

将一个只读字符跨度的所有实例替换为此生成器的一部分。

public:
 System::Text::StringBuilder ^ Replace(ReadOnlySpan<char> oldValue, ReadOnlySpan<char> newValue, int startIndex, int count);
public System.Text.StringBuilder Replace (ReadOnlySpan<char> oldValue, ReadOnlySpan<char> newValue, int startIndex, int count);
member this.Replace : ReadOnlySpan<char> * ReadOnlySpan<char> * int * int -> System.Text.StringBuilder
Public Function Replace (oldValue As ReadOnlySpan(Of Char), newValue As ReadOnlySpan(Of Char), startIndex As Integer, count As Integer) As StringBuilder

参数

oldValue
ReadOnlySpan<Char>

要替换的只读字符范围。

newValue
ReadOnlySpan<Char>

要替换为 oldValue 的只读字符范围。

startIndex
Int32

要在此生成器中启动的索引。

count
Int32

要在此生成器中读取的字符数。

返回

注解

如果 newValue 为空,则会从此生成器中删除 oldValue 实例。

适用于

Replace(String, String, Int32, Int32)

Source:
StringBuilder.cs
Source:
StringBuilder.cs
Source:
StringBuilder.cs

替换在此实例的子字符串中,将指定字符串的所有匹配项替换为另一个指定的字符串。

public:
 System::Text::StringBuilder ^ Replace(System::String ^ oldValue, System::String ^ newValue, int startIndex, int count);
public System.Text.StringBuilder Replace (string oldValue, string newValue, int startIndex, int count);
public System.Text.StringBuilder Replace (string oldValue, string? newValue, int startIndex, int count);
member this.Replace : string * string * int * int -> System.Text.StringBuilder
Public Function Replace (oldValue As String, newValue As String, startIndex As Integer, count As Integer) As StringBuilder

参数

oldValue
String

要替换的字符串。

newValue
String

替换 oldValuenull的字符串。

startIndex
Int32

此实例中子字符串开始的位置。

count
Int32

子字符串的长度。

返回

对此实例的引用,其中 oldValue 的所有实例都替换为从 startIndexstartIndex + count - 1 范围内的 newValue

例外

oldValue null

oldValue 的长度为零。

startIndexcount 小于零。

-或-

startIndexcount 指示不在此实例中的字符位置。

-或-

放大此实例的值将超过 MaxCapacity

注解

此方法执行序号区分大小写的比较,以识别指定子字符串中 oldValue 的出现次数。 如果 newValuenullString.Empty,则会删除所有 oldValue

另请参阅

适用于