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 方法。

C#
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.

*/

Replace(Char, Char)

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

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

C#
public System.Text.StringBuilder Replace (char oldChar, char newChar);

参数

oldChar
Char

要替换的字符。

newChar
Char

替换 oldChar的字符。

返回

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

注解

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

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

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

Source:
StringBuilder.cs

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

C#
public System.Text.StringBuilder Replace (ReadOnlySpan<char> oldValue, ReadOnlySpan<char> newValue);

参数

oldValue
ReadOnlySpan<Char>

要替换的只读字符范围。

newValue
ReadOnlySpan<Char>

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

返回

注解

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

适用于

.NET 9
产品 版本
.NET 9

Replace(String, String)

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

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

C#
public System.Text.StringBuilder Replace (string oldValue, string newValue);
C#
public System.Text.StringBuilder Replace (string oldValue, string? newValue);

参数

oldValue
String

要替换的字符串。

newValue
String

替换 oldValuenull的字符串。

返回

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

例外

oldValue null

oldValue 的长度为零。

放大此实例的值将超过 MaxCapacity

注解

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

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Replace(Char, Char, Int32, Int32)

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

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

C#
public System.Text.StringBuilder Replace (char oldChar, char newChar, int startIndex, int count);

参数

oldChar
Char

要替换的字符。

newChar
Char

替换 oldChar的字符。

startIndex
Int32

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

count
Int32

子字符串的长度。

返回

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

例外

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

-或-

startIndexcount 小于零。

注解

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

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

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

Source:
StringBuilder.cs

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

C#
public System.Text.StringBuilder Replace (ReadOnlySpan<char> oldValue, ReadOnlySpan<char> newValue, int startIndex, int count);

参数

oldValue
ReadOnlySpan<Char>

要替换的只读字符范围。

newValue
ReadOnlySpan<Char>

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

startIndex
Int32

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

count
Int32

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

返回

注解

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

适用于

.NET 9
产品 版本
.NET 9

Replace(String, String, Int32, Int32)

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

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

C#
public System.Text.StringBuilder Replace (string oldValue, string newValue, int startIndex, int count);
C#
public System.Text.StringBuilder Replace (string oldValue, string? newValue, int startIndex, int count);

参数

oldValue
String

要替换的字符串。

newValue
String

替换 oldValuenull的字符串。

startIndex
Int32

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

count
Int32

子字符串的长度。

返回

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

例外

oldValue null

oldValue 的长度为零。

startIndexcount 小于零。

-或-

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

-或-

放大此实例的值将超过 MaxCapacity

注解

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

另请参阅

适用于

.NET 9 和其他版本
产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0