C#用string.Replace方法批量替换某一类字符串

目录

一、关于字符串及其操作常识

二、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'*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/340741.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Next.js 学习笔记(五)——渲染

渲染 渲染将你编写的代码转换到用户界面。React 和 Next.js 允许你创建混合 web 应用程序&#xff0c;其中部分代码可以在服务器或客户端上呈现。本节将帮助你了解这些渲染环境、策略和运行时之间的差异。 基本知识 首先&#xff0c;下列对熟悉三个基本的网络概念是有帮助的…

Android基于Matrix绘制PaintDrawable设置BitmapShader,以手指触点为中心显示原图像圆图,Kotlin

Android基于Matrix绘制PaintDrawable设置BitmapShader&#xff0c;以手指触点为中心显示原图像圆图&#xff0c;Kotlin 手指在上面的图上移动&#xff0c;“剪切”出上面图中以手指触点为中心的图&#xff08;半径图&#xff09;&#xff0c;然后在下面的ImageView显示。 impor…

读《Open-Vocabulary Video Anomaly Detection》

2023 西北工业大学和新大 引言 视频异常检测(VAD)旨在检测不符合预期模式的异常事件&#xff0c;由于其在智能视频监控和视频内容审查等应用前景广阔&#xff0c;已成为学术界和工业界日益关注的问题。通过几年蓬勃发展&#xff0c;VAD 在许多不断涌现的工作中取得了重大进展。…

leetcode动态规划(零钱兑换II、组合总和 Ⅳ)

518.零钱兑换II 给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。 示例 1: 输入: amount 5, coins [1, 2, 5] 输出: 4 解释: 有四种方式可以凑成总金额: 55 5221 52111 511111 示例 2: 输入: amount 3, coi…

pytorch11:模型加载与保存、finetune迁移训练

目录 一、模型加载与保存1.1 序列化与反序列化概念1.2 pytorch中的序列化与反序列化1.3 模型保存的两种方法1.4 模型加载两种方法 二、断点训练2.1 断点保存代码2.2 断点恢复代码 三、finetune3.1 迁移学习3.2 模型的迁移学习3.2 模型微调步骤3.2.1 模型微调步骤3.2.2 模型微调…

免费申请eu.org域名,开启个人网站之旅

介绍 eu.org的免费域名注册服务是由OpenTLD B.V.提供的。相比于其他免费域名注册服务&#xff0c;eu.org的域名后缀更加独特。同时&#xff0c;eu.org的域名注册也比较简单&#xff0c;只需要填写一些基本信息&#xff0c;就可以获得自己的免费域名。 注册账号 点击进入登…

Linux最常用的几个时间日期命令

文章目录 Linux最常用的几个时间日期命令一日难再晨及时当勉励 date默认输入显示时区世界协调时格式化日期 时光总是催人老 time语法示例 休息一会 sleep休息5分钟1小时后提醒我时分秒搭配使用倒计时计时器结合脚本 更多信息 Linux最常用的几个时间日期命令 桃花谢了春红&…

【AI视野·今日NLP 自然语言处理论文速览 第七十三期】Tue, 9 Jan 2024

AI视野今日CS.NLP 自然语言处理论文速览 Tue, 9 Jan 2024 Totally 80 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers FFSplit: Split Feed-Forward Network For Optimizing Accuracy-Efficiency Trade-off in Language Model Infe…

基于Springboot的课程答疑系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的课程答疑系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

在WindowsServer2012中部署war项目

目录 前言 一.jdk安装 二.Tomact安装 三.MySQL安装 ​编辑​编辑​编辑​编辑​编辑​编辑​编辑 四.开放端口号 MySQL开放端口号 Tomact开放端口号 ​编辑 五.项目部署 1.将war放置在tomact中 2.配置项目sql脚本 3.最终效果 前言 安装Java开发工具包&#xff08…

书生.浦语大模型LangChain实战

RAG&#xff08;Retrieval-Augmented Generation&#xff09;与Finetune 传统大模型有以下几点问题&#xff1a; 无法及时更新知识知识面广&#xff0c;但在专业领域深度不够 为了解决以上诸多问题&#xff0c;有很多尝试方案。例如通过微调模型&#xff08;Finetune&#x…

Python OpenCv中调用cv2.selectROI( )函数提取图像中指定区域(高效抠图)

目录 一、cv2.selectROI()函数参数二、代码三、提取结果四、总结 一、cv2.selectROI()函数参数 下面是cv2.seletROI()函数中各个参数的解析&#xff1a; selectROI(windowName, img, showCrosshairNone, fromCenterNone):. 参数windowName&#xff1a;选择的区域被显示在的…