目录
一、关于字符串及其操作常识
二、String.Replace 方法
1.重载
2.Replace(Char, Char)
3.Replace(String, String)
(1)实例:
(2)生成结果:
4.Replace(String, String, StringComparison)
5.Replace(String, String, Boolean, CultureInfo)
(1)实例
一、关于字符串及其操作常识
在字符串操作中,可以使用字符串对象的Split方法拆分字符串,还可以使用字符串对象的Substring方法截取一部分字符串。使用字符串对象的Replace方法替换某一类字符串。
使用字符串对象的Replace方法可以方便地替换字符串中指定的内容。由于字符串是不可变的,Replace方法会返回一个新的字符串对象。
二、String.Replace 方法
返回一个新字符串,其中已将当前字符串中的指定 Unicode 字符或 String 的所有匹配项替换为其他指定的 Unicode 字符或 String。
1.重载
Replace(Char, Char) | 返回一个新字符串,其中此实例中出现的所有指定 Unicode 字符都替换为另一个指定的 Unicode 字符。 |
Replace(String, String) | 返回一个新字符串,其中当前实例中出现的所有指定字符串都替换为另一个指定的字符串。 |
Replace(String, String, StringComparison) | 返回一个新字符串,其中当前实例中出现的所有指定字符串都使用提供的比较类型替换为另一个指定的字符串。 |
Replace(String, String, Boolean, CultureInfo) | 返回一个新字符串,其中当前实例中出现的所有指定字符串都使用提供的区域性和区分大小写属性替换为另一个指定的字符串。 |
2.Replace(Char, Char)
返回一个新字符串,其中此实例中出现的所有指定 Unicode 字符都替换为另一个指定的 Unicode 字符。
public string Replace (char oldChar, char newChar);
参数
oldChar
Char
要替换的 Unicode 字符。
newChar
Char
要替换出现的所有 oldChar 的 Unicode 字符。
返回
String
等效于此实例(除了 oldChar 的所有实例都已替换为 newChar 外)的字符串。 如果在当前实例中找不到 oldChar,此方法返回未更改的当前实例。
此方法执行序号 (区分大小写和不区分区域性) 搜索来查找 oldChar。此方法不会修改当前实例的值。 相反,它返回一个新字符串,在该字符串中的所有匹配 oldChar 项都由 newChar替换。由于此方法返回修改后的字符串,因此可以将对 方法的 Replace 连续调用链接在一起,以对原始字符串执行多次替换。 方法调用从左到右执行。
3.Replace(String, String)
返回一个新字符串,其中当前实例中出现的所有指定字符串都替换为另一个指定的字符串。
public string Replace (string oldValue, string? newValue);
参数
oldValue
String
要替换的字符串。
newValue
String
要替换 oldValue 的所有匹配项的字符串。
返回
String
等效于当前字符串(除了 oldValue 的所有实例都已替换为 newValue 外)的字符串。 如果在当前实例中找不到 oldValue,此方法返回未更改的当前实例。
例外
ArgumentNullException
oldValue 为 null。
ArgumentException
oldValue 为空字符串 ("")。
如果 newValue 为 null,则删除所有 oldValue 匹配项。此方法不会修改当前实例的值。 相反,它返回一个新字符串,在该字符串中的所有匹配 oldValue 项都由 newValue替换。此方法执行序号 (区分大小写和不区分区域性) 搜索来查找 oldValue。由于此方法返回修改后的字符串,因此可以将对方法的 Replace 连续调用链接在一起,以对原始字符串执行多次替换。 方法调用从左到右执行。
(1)实例:
// 用string.Replace方法批量替换某一类字符串
namespace _045
{
public partial class Form1 : Form
{
private TextBox? textBox1;
private Label? label1;
private Label? label2;
private TextBox? textBox2;
private TextBox? textBox3;
private Button? button1;
public Form1()
{
InitializeComponent();
Load += Form1_Load;
}
private void Form1_Load(object? sender, EventArgs e)
{
//
// textBox1
//
textBox1 = new TextBox
{
Location = new Point(-1, -1),
Multiline = true,
Name = "textBox1",
Size = new Size(315, 199),
TabIndex = 0
};
//
// label1
//
label1 = new Label
{
AutoSize = true,
Location = new Point(12, 210),
Name = "label1",
Size = new Size(80, 17),
TabIndex = 1,
Text = "查找字符串:"
};
//
// label2
//
label2 = new Label
{
AutoSize = true,
Location = new Point(12, 239),
Name = "label2",
Size = new Size(80, 17),
TabIndex = 2,
Text = "替换字符串:"
};
//
// textBox2
//
textBox2 = new TextBox
{
Location = new Point(88, 204),
Name = "textBox2",
Size = new Size(133, 23),
TabIndex = 3
};
//
// textBox3
//
textBox3 = new TextBox
{
Location = new Point(88, 236),
Name = "textBox3",
Size = new Size(133, 23),
TabIndex = 4
};
//
// button1
//
button1 = new Button
{
Location = new Point(227, 231),
Name = "button1",
Size = new Size(75, 28),
TabIndex = 5,
Text = "开始替换",
UseVisualStyleBackColor = true
};
button1.Click += Button1_Click;
//
// Form1
//
AutoScaleDimensions = new SizeF(7F, 17F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(314, 271);
Controls.Add(button1);
Controls.Add(textBox3);
Controls.Add(textBox2);
Controls.Add(label2);
Controls.Add(label1);
Controls.Add(textBox1);
Name = "Form1";
StartPosition = FormStartPosition.CenterScreen;
Text = "用Replace方法批量替换字符";
ResumeLayout(false);
}
/// <summary>
/// 使用字符串对象的Reaplce方法替换所有满足条件的字符串
/// </summary>
private void Button1_Click(object? sender, EventArgs e)
{
textBox1!.Text = textBox1.Text.Replace(textBox2!.Text, textBox3!.Text);
}
}
}
(2)生成结果:
4.Replace(String, String, StringComparison)
返回一个新字符串,其中当前实例中出现的所有指定字符串都使用提供的比较类型替换为另一个指定的字符串。
public string Replace (string oldValue, string? newValue, StringComparison comparisonType);
参数
oldValue
String
要替换的字符串。
newValue
String
要替换 oldValue 的所有匹配项的字符串。
comparisonType
StringComparison
枚举值之一,用于确定在此实例内搜索 oldValue 的方法。
返回
String
等效于当前字符串(除了 oldValue 的所有实例都已替换为 newValue 外)的字符串。 如果在当前实例中找不到 oldValue,此方法返回未更改的当前实例。
例外
ArgumentNullException
oldValue 为 null。
ArgumentException
oldValue 为空字符串 ("")。
注解
如果 newValue 为 null,则删除所有的 oldValue 匹配项。
此方法不会修改当前实例的值。 相反,它返回一个新字符串,在该字符串中的所有匹配 oldValue 项都由 newValue替换。
此方法使用 描述comparisonType的区域性和区分大小写的方式执行搜索以查找 oldValue 。
由于此方法返回修改后的字符串,因此可以将对方法的 Replace 连续调用链接在一起,以对原始字符串执行多次替换。 方法调用从左到右执行。
5.Replace(String, String, Boolean, CultureInfo)
返回一个新字符串,其中当前实例中出现的所有指定字符串都使用提供的区域性和区分大小写属性替换为另一个指定的字符串。
public string Replace (string oldValue, string? newValue, bool ignoreCase, System.Globalization.CultureInfo? culture);
参数
oldValue
String
要替换的字符串。
newValue
String
要替换 oldValue 的所有匹配项的字符串。
ignoreCase
Boolean
在比较时忽略大小写则为 true;否则为 false。
culture
CultureInfo
比较时要使用的区域性。 如果 culture 为 null,则使用当前区域性。
返回
String
等效于当前字符串(除了 oldValue 的所有实例都已替换为 newValue 外)的字符串。 如果在当前实例中找不到 oldValue,此方法返回未更改的当前实例。
例外
ArgumentNullException
oldValue 为 null。
ArgumentException
oldValue 为空字符串 ("")。
注解
如果 newValue 为 null,则删除所有的 oldValue 匹配项。
此方法不会修改当前实例的值。 相反,它返回一个新字符串,在该字符串中的所有匹配 oldValue 项都由 newValue替换。
此方法使用提供的 culture 和ignoreCase区分大小写的 执行搜索以查找oldValue。
由于此方法返回修改后的字符串,因此可以将对方法的 Replace 连续调用链接在一起,以对原始字符串执行多次替换。 方法调用从左到右执行。
(1)实例
// Replace(String, String)方法
// 对 Replace 方法的连续调用链接在一起,以对原始字符串执行多次替换。
// 方法调用从左到右执行。
namespace ConsoleApp9
{
internal class Program
{
private static void Main(string[] args)
{
ArgumentNullException.ThrowIfNull(args);
string s = "aaa";
Console.WriteLine("The initial string: '{0}'", s);
s = s.Replace("a", "b").Replace("b", "c").Replace("c", "d");
Console.WriteLine("The final string: '{0}'", s);
}
}
}
// 运行结果:
/*
The initial string: 'aaa'
The final string: 'ddd'
*/