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.mzph.cn/news/614232.shtml

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

相关文章

2023年低代码无代码产业大会:核心内容与学习收获(附大会核心PPT下载)

2023年低代码无代码产业大会聚焦了行业最前沿的趋势与技术&#xff0c;为企业数字化转型提供新的思路和方法。在这次大会上&#xff0c;我们可以深入了解到低代码/无代码技术的最新发展&#xff0c;以及如何利用这些技术来提高业务效率和创新能力。 一、大会的核心内容 1、低代…

net8 golang python性能比较

net8正式版出来两个月&#xff0c;现在性能到底如何呢&#xff0c;做个简单的例子和其他语言比较一下&#xff0c;测试内容是查找1000000以内的质数&#xff0c;代码不多&#xff0c;但包含了循环计算和Math库函数调用&#xff0c;直观的看一下语言之间差距是多少&#xff0c;心…

【AI视野·今日Robot 机器人论文速览 第七十三期】Tue, 9 Jan 2024

AI视野今日CS.Robotics 机器人学论文速览 Tue, 9 Jan 2024 Totally 40 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers Digital Twin for Autonomous Surface Vessels for Safe Maritime Navigation Authors Daniel Menges, Andreas Von Brandis, A…

JWT---JSON Web Token

JSON Web Token是什么 JSON Web Token (JWT)是一个开放标准(RFC 7519)&#xff0c;它定义了一种紧凑的、自包含的方式&#xff0c;用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任&#xff0c;因为它是数字签名的。 JSON Web Token的结构是什么样的 JSON…

【每日一题】构造有效字符串的最少插入数

文章目录 Tag题目来源解题思路方法一&#xff1a;考虑 abc 的个数 写在最后 Tag 【字符串】【2024-01-11】 题目来源 2645. 构造有效字符串的最少插入数 解题思路 方法一&#xff1a;考虑 abc 的个数 思路 如果答案由 t 个 “abc” 组成&#xff0c;那么需要插入字符个数为…

概率论与数理统计-第7章 假设检验

假设检验的基本概念 二、假设检验的基本思想 假设检验的基本思想实质上是带有某种概率性质的反证法&#xff0c;为了检验一个假设H0,是否正确&#xff0c;首先假定该假设H0正确&#xff0c;然后根据抽取到的样本对假设H0作出接受或拒绝的决策&#xff0c;如果样本观察值导致了…

二叉树的创建与遍历

对于前序遍历&#xff0c;首先访问当前节点&#xff0c;然后递归地遍历左子树和右子树。 这就是为什么前序遍历的代码中&#xff0c;首先是 printf("%d ", root->data);。中序遍历&#xff1a; 对于中序遍历&#xff0c;首先递归地遍历左子树&#xff0c;然后访问…

5、C语言:结构

结构 结构的基本知识结构与函数传递结构 结构数组、指向结构的指针自引用结构&#xff08;二叉树&#xff09;表查找类型定义&#xff08;typedef&#xff09;联合位字段 结构也是一种数据类型。类似于int、char、double、float等。 结构是一个或多个变量的集合&#xff0c;这些…

c++学习笔记-STL案例-机房预约系统1-准备工作

前言 准备工作包括&#xff1a;需求分析、项目创建、主菜单实现、退出功能实现 目录 1 机房预约系统需求 1.1 简单介绍 1.2 身份介绍 1.3 机房介绍 1.4 申请介绍 1.5 系统具体要求 1.6 预约系统-主界面思维导图 2 创建项目 2.1 创建项目 2.2 添加文件 ​编辑 3 创建…

页面跳转后,默认选中tree节点并高亮显示

1.场景 操作步骤&#xff1a; 1.点击数据连接数&#xff0c;打开弹窗 2.点击连接状态跳转到数据连接模块 3.默认选中tree的数据源id节点 2.代码 参数解释&#xff1a; 3.实现逻辑 首先将id通过组件传参的方式传过去&#xff0c;数据连接接收后&#xff0c;在tree里设置…

ubuntu 挂载新硬盘

1、检测新硬盘 新增加硬盘&#xff0c;检测硬盘识别情况。 命令检查&#xff1a;sudo fdisk -l 3、格式化磁盘 格式化&#xff1a;sudo mkfs.ext4 /dev/sdb 其中&#xff0c;/dev/sdb是新分区的设备文件名&#xff0c;ext4是要使用的文件系统类型。 4、挂载新分区 sudo mk…

【银行测试】24年金融银行项目,10道高频测试面试题汇总...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 面试题1&#xff…

使用AUTOSAR来开发汽车基础软件的优点

1、高质量。以前我们采用手写代码的方式&#xff0c;是几个工程师在战斗。现在我们采用平台&#xff0c;BSW代码都是供应商提供的&#xff0c;我们相当于后面还有一个团队陪着我们在战斗。 2、低成本。大家都说采用AUTOSAR平台好贵&#xff0c;但是从长远来看是值得的&#xff…

计算机毕业设计----ssm开发的Java快递代拿系统

使用技术 采用 Spring SpringMVC MyBatisPlus&#xff0c;连接池采用 Druid&#xff0c;安全框架使用 Shiro&#xff0c;前端采用 Bootstrap layer 实现。 支付采用支付宝沙箱环境&#xff0c;支付APP下载链接&#xff0c;[点击这里](https://sandbox.alipaydev.com/user/…

SpringBoot中使用SpringEvent业务解耦神器实现监听发布事件同步异步执行任务

场景 SpringBoot中使用单例模式ScheduledExecutorService实现异步多线程任务(若依源码学习)&#xff1a; SpringBoot中使用单例模式ScheduledExecutorService实现异步多线程任务(若依源码学习)-CSDN博客 设计模式-观察者模式在Java中的使用示例-环境监测系统&#xff1a; 设…

GPT实战系列-简单聊聊LangChain

GPT实战系列-简单聊聊LangChain LLM大模型相关文章&#xff1a; GPT实战系列-ChatGLM3本地部署CUDA111080Ti显卡24G实战方案 GPT实战系列-Baichuan2本地化部署实战方案 GPT实战系列-大话LLM大模型训练 GPT实战系列-探究GPT等大模型的文本生成 GPT实战系列-Baichuan2等大模…

SpringBoot中使用LocalDateTime踩坑记录

文章目录 前言一、为什么推荐使用java.time包的LocalDateTime而不是java.util的Date&#xff1f;二、使用LocalDateTime和LocalDate时遇到了哪些坑&#xff1f;2.1 Redis序列化报错2.1.1 问题现象2.1.2 问题分析2.1.3 解决方案 2.2 LocalDateTime和LocalDate类型的属性返回给前…

类型特质和静态断言

static_assert( constant-expression, string-literal );static_assert( constant-expression ); // C17 (Visual Studio 2017 and later) constant-expression 可以转换为布尔值的整型常量表达式。 如果计算出的表达式为零 (false)&#xff0c;则显示 string-literal 参数&…

PyTorch|view(),改变张量维度

在构建自己的网络时&#xff0c;了解数据经过每个层后的形状变化是必须的&#xff0c;否则&#xff0c;网络大概率会出现问题。PyToch张量有一个方法&#xff0c;叫做view(),使用这个方法&#xff0c;我们可以很容易的对张量的形状进行改变&#xff0c;从而符合网络的输入要求。…

React 18中新钩子 useDeferredValue 使用

React是一个流行的用于构建用户界面的JavaScript库,它不断发展以为开发人员提供优化性能的工具。 React 18中引入的此类工具之一是useDeferredValue钩子,它旨在通过优先渲染更新来提高应用程序的性能。 useDeferredValue钩子是什么? useDeferredValue钩子是React性能优化工…