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.mfbz.cn/a/312344.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu20.04下A-LOAM配置安装及测试教程(包含报错问题踩坑)

参考文章&#xff1a; ubuntu20.04下ros运行A-LOAM Ubuntu20.04下运行LOAM系列&#xff1a;A-LOAM、LeGO-LOAM、SC-LeGO-LOAM、LIO-SAM 和 LVI-SAM 需要学习源码的同学可以下载LOAM论文 LOAM论文链接 1.需要安装的库文件 1.1Eigen 3.3 可以直接使用apt命令安装&#xff0c;或…

【GO语言依赖】Go语言依赖管理简述

在运行环境中&#xff0c;遭遇报错&#xff0c;显示找不到函数 经过研究后发现需要进行依赖管理&#xff0c;进行如下操作后解决&#xff1a; 起源 最早的时候&#xff0c;Go所依赖的所有的第三方库都放在GOPATH这个目录下面。这就导致了同一个库只能保存一个版本的代码。如…

VS中动态库的创建和调用

VS中动态库的创建和调用 库 ​ 库是写好的现有的&#xff0c;成熟的&#xff0c;可以复用的代码。库的存在形式本质上来说库是一种可执行代码的二进制。 ​ 库有两种&#xff1a;静态库&#xff08;.a、.lib&#xff09;和动态库&#xff08;.so、.dll&#xff09;。所谓静态…

VUE指令(一)

vue会根据不同的指令&#xff0c;针对不同的标签实现不同的功能。指令是带有 v- 前缀的特殊标签属性。指令的职责是&#xff0c;当表达式的值改变时&#xff0c;将其产生的连带影响&#xff0c;响应式地作用于 DOM。 1、v-text&#xff1a;设置元素的文本内容&#xff0c;不会解…

Vulnhub-HACKSUDO: PROXIMACENTAURI渗透

文章目录 一、前言1、靶机ip配置2、渗透目标3、渗透概括 开始实战一、信息获取二、端口敲门三、web密码爆破四、getShell五、获取新用户六、提权 一、前言 由于在做靶机的时候&#xff0c;涉及到的渗透思路是非常的广泛&#xff0c;所以在写文章的时候都是挑重点来写&#xff0…

TypeScript类型挑战:实现内置的Omit实用类型

掌握 TypeScript Omit 泛型&#xff0c;一起完成 Type 挑战&#xff0c;巩固 TypeScript 知识。 为了帮助读者更好地巩固 TypeScript 的知识&#xff0c;我从 Github 上的 type-challenges 库中选择了几十个挑战&#xff0c;与您一起完成类型挑战。 挑战 实现内置的 Omit&…

初识Ubuntu

其实还是linux操作系统 命令都一样 但是在学习初级阶段&#xff0c;我还是将其分开有便于我的学习和稳固。 cat 查看文件 命令 Ubuntu工作中经常是用普通用户&#xff0c;在需要时才进行登录管理员用户 sudn -i 切换成管理用户 我们远程连接时 如果出现 hostname -I没有出现…

什么是数字身份?

数字身份是指代表在线实体的数据集合。数字身份可以代表用户、组织或电子设备&#xff0c;由他们的帐户、凭证、证书、行为和使用模式组成。在身份访问管理&#xff08;IAM&#xff09;中&#xff0c;需要数字身份来对用户进行身份验证并授予他们访问敏感数据的权限。 数字身份…

5、MAE:探索视觉预训练模型

目录 1、论文 2、背景与动机 3、回答的问题 4、创新与卖点 5、实现细节 模型框架 具体步骤 简单代码示例 6、一些资料 1、论文 Masked Autoencoders Are Scalable Vision Learnershttps://arxiv.org/pdf/2111.06377.pdf 2、背景与动机 在深度学习和计算机视觉的领域中…

【uniapp】新课uniapp零基础入门到项目打包(微信小程序/H5/vue/安卓apk)全掌握

一、uniapp和HBuilderX介绍 uni-app官方网站&#xff1a;https://uniapp.dcloud.net.cn/ 为什么要学习uniapp&#xff1f; 1、一套代码可以打包到不同的应用平台&#xff1b;一套代码编到十几个平台&#xff0c;这不是梦想。眼见为实&#xff0c;扫描以下二维码&#xff0c;…

2023年全国职业院校技能大赛软件测试赛题—单元测试卷⑧

单元测试 一、任务要求 题目1&#xff1a;根据下列流程图编写程序实现相应处理&#xff0c;执行j10*x-y返回文字“j1&#xff1a;”和计算值&#xff0c;执行j(x-y)*(10⁵%7)返回文字“j2&#xff1a;”和计算值&#xff0c;执行jy*log(x10)返回文字“j3&#xff1a;”和计算值…

Qt / day04

1. 思维导图 2. 编写程序实现闹钟如下 文件 代码 clock.h #include "clock.h" #include "ui_clock.h"Clock::Clock(QWidget *parent): QWidget(parent), ui(new Ui::Clock), ptrTimerShow(new QTimer(this)), ptrTimerAlarm(new QTimer(this)), ptrSpeec…

Spark六:Spark 底层执行原理SparkContext、DAG、TaskScheduler

Spark底层执行原理 学习Spark运行流程 学习链接&#xff1a;https://mp.weixin.qq.com/s/caCk3mM5iXy0FaXCLkDwYQ 一、Spark运行流程 流程&#xff1a; SparkContext向管理器注册并向资源管理器申请运行Executor资源管理器分配Executor&#xff0c;然后资源管理器启动Execut…

iOS rootless无根越狱解决方案

据游戏工委数据统计&#xff0c;2023年国内游戏市场实际销售收入与用户规模双双创下新高&#xff0c;游戏普遍采用多端并发方式&#xff0c;成为收入增长的主因之一。 中国市场实际销售收入及增长率丨数据来源&#xff1a;游戏工委 多端互通既是机遇&#xff0c;也是挑战。从游…

使用 Docker 和 Diffusers 快速上手 Stable Video Diffusion 图生视频大模型

本篇文章聊聊&#xff0c;如何快速上手 Stable Video Diffusion (SVD) 图生视频大模型。 写在前面 月底计划在机器之心的“AI技术论坛”做关于使用开源模型 “Stable Diffusion 模型” 做有趣视频的实战分享。 因为会议分享时间有限&#xff0c;和之前一样&#xff0c;比较简…

MySQL篇—通过Clone插件进行远程克隆数据(第三篇,总共三篇)

在介绍 Clone 最终篇之前&#xff0c;我们先简要回顾一下前面所讲的内容。在第一篇中&#xff0c;我们探讨了 Clone 的用途、使用的前提条件、存在的限制&#xff0c;以及它的备份原理。Clone 是一种用于复制和备份数据的工具&#xff0c;它能够快速高效地创建数据的精确副本。…

超维空间M1无人机使用说明书——53、ROS无人机二维码识别与降落——V2升级版本

引言&#xff1a;使用二维码引导无人机实现精准降落&#xff0c;首先需要实现对二维码的识别和定位&#xff0c;可以参考博客的二维码识别和定位内容。本小节主要是通过获取拿到的二维码位置&#xff0c;控制无人机全向的移动和降落&#xff0c;本小节再V1版本的基础上增加了动…

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

AI视野今日CS.NLP 自然语言处理论文速览 Mon, 8 Jan 2024 Totally 17 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers DeepSeek LLM: Scaling Open-Source Language Models with Longtermism Authors DeepSeek AI Xiao Bi, Deli Ch…

【修图】AI修图工具

人脸替换 免费的人脸替换工具&#xff1a; Face Swap&#xff1a; https://vmodel.ai/face-swap 支持单人换脸、多人换脸 AI消除 SnapEdit https://snapedit.app/remove-object 不付费的话只能下载清晰度较低的版本 但我试了几个在线的AI消除工具&#xff0c;SnapEdit算是…

最新版docker-compose安装

Ubuntu/Kali 下载安装最新版 docker-compose # FastGit加速 sudo curl -L "https://hub.fgit.cf/docker/compose/releases/download$(curl -L -i -s -o /dev/null -w "%{url_effective}\n" https://hub.fgit.cf/docker/compose/releases/latest | awk -F tag …
最新文章