当前位置: 首页 > news >正文

C# Replace()、Trim()、Split()、Substring()、IndexOf() 、 LastIndexOf()函数

目录

一、Replace()

二、Trim()

三、Split()

四、Substring()

五、IndexOf()

六、LastIndexOf()


一、Replace()

在C#中,Replace()是一个字符串方法,用于将指定的字符或子字符串替换为另一个字符或字符串。下面是一些Replace()方法的常见用法和示例代码:

  1. 将字符串中的一个字符替换为另一个字符
    string original = "Hello World";
    string replaced = original.Replace('o', '0');
    Console.WriteLine(replaced); // 输出: Hell0 W0rld
    

    可以使用 Replace() 方法删除空格                                                                                             使用 String.Replace() 方法 ,将空格替换为空字符串:

    string str = " This is a string with spaces. ";
    str = str.Replace(" ", "");
    Console.WriteLine(str);
    

    可删掉所有空格                                                                                                                        

  2. 将字符串中的一个子字符串替换为另一个字符串
    string original = "The quick brown fox jumps over the lazy dog";
    string replaced = original.Replace("fox", "cat");
    Console.WriteLine(replaced); // 输出: The quick brown cat jumps over the lazy dog
    

  3. 在字符串中使用正则表达式替换匹配的内容
    string original = "Hello, World!";
    string replaced = Regex.Replace(original, "[aeiou]", "*");
    Console.WriteLine(replaced); // 输出: H*ll*, W*rld!
    

    在这个例子中,使用正则表达式 [aeiou] 匹配字符串中的任何一个元音字母,并用 * 替换匹配的内容。

    需要注意的是,Replace()方法返回一个新的字符串,而不是修改原始字符串。

二、Trim()

C#中的Trim()方法用于移除字符串的开头和结尾处的空白字符,包括空格、制表符和换行符等。它返回一个新的字符串,该字符串是原始字符串的副本,但是开头和结尾的空白字符已被移除。

下面是一些使用Trim()方法的示例:

string str1 = "   Hello World!   ";
string str2 = "\t\tHello World!\t\t";
string str3 = "\n\nHello World!\n\n";// 使用Trim方法移除开头和结尾处的空白字符
string trimmed1 = str1.Trim();
string trimmed2 = str2.Trim();
string trimmed3 = str3.Trim();Console.WriteLine(trimmed1); // "Hello World!"
Console.WriteLine(trimmed2); // "Hello World!"
Console.WriteLine(trimmed3); // "Hello World!"

在上面的示例中,我们定义了三个包含空白字符的字符串,分别使用Trim()方法来移除它们开头和结尾处的空白字符。在输出结果中,我们可以看到移除空白字符后的字符串。

除了Trim()方法之外,C#中还有其他几个类似的方法,如TrimStart()和TrimEnd()。TrimStart()方法用于移除字符串开头处的空白字符,而TrimEnd()方法用于移除字符串结尾处的空白字符。这些方法也返回一个新的字符串,该字符串是原始字符串的副本,但是指定位置的空白字符已被移除。

三、Split()

C#中的Split()方法用于将一个字符串按照指定的分隔符拆分成一个字符串数组。它可以接受一个或多个分隔符,并且可以指定是否忽略空白项。

下面是一些使用Split()方法的示例:

string str = "apple,banana,orange";// 使用逗号分隔字符串,并将结果保存到字符串数组中
string[] arr1 = str.Split(',');// 输出数组中的每个元素
foreach (string item in arr1)
{Console.WriteLine(item);
}// 使用多个分隔符
string str2 = "apple|banana-orange";
string[] arr2 = str2.Split(new char[] { '|', '-' });// 输出数组中的每个元素
foreach (string item in arr2)
{Console.WriteLine(item);
}// 忽略空白项
string str3 = "apple,banana,,orange";
string[] arr3 = str3.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);// 输出数组中的每个元素
foreach (string item in arr3)
{Console.WriteLine(item);
}

上述示例运行后的结果如下:

apple
banana
orange
apple
banana
orange
apple
banana
orange

第一个示例将原始字符串按逗号分隔成了3个字符串,分别是"apple"、"banana"和"orange",然后将它们输出到控制台。

第二个示例将原始字符串按照'|'和'-'两个分隔符分隔成了3个字符串,同样将它们输出到控制台。

第三个示例在原始字符串中增加了一个空白项,并使用了StringSplitOptions.RemoveEmptyEntries选项来忽略空白项,最终得到的结果与第一个示例相同。

在上面的示例中,我们首先定义了一个包含多个水果名称的字符串,然后使用逗号分隔符将其拆分为一个字符串数组。接下来,我们演示了如何使用多个分隔符,并忽略空白项。

需要注意的是,Split()方法返回的是一个字符串数组。如果原始字符串中不包含分隔符,则Split()方法会返回一个只包含原始字符串的字符串数组。

四、Substring()

C#中的Substring()方法用于从一个字符串中提取指定长度的子字符串。它有两个重载版本,一个接受一个起始索引和一个长度作为参数,另一个接受一个起始索引并返回从该索引开始到字符串的末尾的所有字符。

下面是一些使用Substring()方法的示例:

string str = "Hello, world!";// 从索引6开始提取3个字符
string sub1 = str.Substring(6, 3);
Console.WriteLine(sub1); // "wor"// 从索引7开始提取到字符串末尾的所有字符
string sub2 = str.Substring(7);
Console.WriteLine(sub2); // "world!"

在上面的示例中,我们首先定义了一个包含"Hello, world!"的字符串。然后,我们使用Substring()方法从索引6开始提取3个字符,并将结果保存到sub1字符串变量中。接下来,我们使用Substring()方法从索引7开始提取到字符串末尾的所有字符,并将结果保存到sub2字符串变量中。最后,我们将这两个子字符串输出到控制台。

需要注意的是,Substring()方法返回的是一个新的字符串,原始字符串并没有被修改。如果指定的起始索引超出了字符串的范围,或者指定的长度超出了从起始索引开始到字符串结尾的字符数,Substring()方法将抛出一个ArgumentOutOfRangeException异常。

五、IndexOf()

C#中的IndexOf()方法用于在字符串中查找指定的字符或子字符串,并返回第一次出现的位置索引。它有多个重载版本,可以指定查找的起始索引、查找方向等参数。

下面是一些使用IndexOf()方法的示例:

string str = "The quick brown fox jumps over the lazy dog.";// 查找字符串"fox"第一次出现的位置
int index1 = str.IndexOf("fox");
Console.WriteLine(index1); // 16// 从索引20开始查找字符串"fox"第一次出现的位置
int index2 = str.IndexOf("fox", 20);
Console.WriteLine(index2); // -1// 从索引20开始向前查找字符串"fox"第一次出现的位置
int index3 = str.IndexOf("fox", 20, StringComparison.CurrentCultureIgnoreCase);
Console.WriteLine(index3); // 16

在上面的示例中,我们首先定义了一个包含"The quick brown fox jumps over the lazy dog."的字符串。然后,我们使用IndexOf()方法查找字符串"fox"第一次出现的位置,并将结果保存到index1变量中。接下来,我们使用IndexOf()方法从索引20开始查找字符串"fox"第一次出现的位置,并将结果保存到index2变量中。由于"fox"不在从索引20开始的子字符串中出现,所以返回值为-1。最后,我们使用IndexOf()方法从索引20开始向前查找字符串"fox"第一次出现的位置,并将结果保存到index3变量中。由于字符串"fox"在从索引16开始的子字符串中出现,所以返回值为16。

需要注意的是,IndexOf()方法返回第一次出现的位置索引,如果字符串中不存在指定的字符或子字符串,将返回-1。此外,IndexOf()方法默认区分大小写,如果要进行不区分大小写的查找,可以使用StringComparison.OrdinalIgnoreCase或StringComparison.CurrentCultureIgnoreCase等参数。

六、LastIndexOf()

C#中的LastIndexOf()方法与IndexOf()方法类似,也是用于在字符串中查找指定的字符或子字符串,并返回最后一次出现的位置索引。它同样有多个重载版本,可以指定查找的起始索引、查找方向等参数。

下面是一些使用LastIndexOf()方法的示例:

string str = "The quick brown fox jumps over the lazy dog.";// 查找字符串"fox"最后一次出现的位置
int index1 = str.LastIndexOf("fox");
Console.WriteLine(index1); // 16// 从索引20开始向前查找字符串"fox"最后一次出现的位置
int index2 = str.LastIndexOf("fox", 20);
Console.WriteLine(index2); // -1// 从索引20开始向前查找字符串"fox"最后一次出现的位置
int index3 = str.LastIndexOf("fox", 20, StringComparison.CurrentCultureIgnoreCase);
Console.WriteLine(index3); // 16

在上面的示例中,我们使用了LastIndexOf()方法查找字符串"fox"最后一次出现的位置,并分别指定了不同的起始索引和查找方向参数。其余的使用方法与IndexOf()方法类似。

需要注意的是,LastIndexOf()方法返回最后一次出现的位置索引,如果字符串中不存在指定的字符或子字符串,将返回-1。此外,LastIndexOf()方法默认区分大小写,如果要进行不区分大小写的查找,可以使用StringComparison.OrdinalIgnoreCase或StringComparison.CurrentCultureIgnoreCase等参数。

相关文章:

C# Replace()、Trim()、Split()、Substring()、IndexOf() 、 LastIndexOf()函数

目录 一、Replace() 二、Trim() 三、Split() 四、Substring() 五、IndexOf() 六、LastIndexOf() 一、Replace() 在C#中,Replace()是一个字符串方法,用于将指定的字符或子字符串替换为另一个字符或字符串。下面是一些Replace()方法的常见用法和示例…...

C++类的理解与类型名,类的成员,两种定义方式,类的访问限定符,成员访问,作用域与实例化对象

面向过程和面向对象初步认识 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题 C是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成 面向…...

【华为OD机试真题 C++】1051 - 处理器问题 | 机试题+算法思路+考点+代码解析

文章目录 一、题目🔸题目描述🔸输入输出🔸样例1🔸样例2 二、题目解析三、代码参考 作者:KJ.JK 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &…...

Linux 常用操作命令大全

一、基础知识 1.1 Linux系统的文件结构 /bin 二进制文件,系统常规命令 /boot 系统启动分区,系统启动时读取的文件 /dev 设备文件 /etc 大多数配置文件 /home 普通用户的家目录 /lib 32位函数库 /lib64 64位库 /media 手动临时挂载点 /mnt 手动临时挂载点…...

Git使用教程

Git 目标 Git简介【了解】 使用Git管理文件版本【重点】 远程仓库使用【掌握】 分支管理【重点】 远程仓库【掌握】 一、Git简介 1、版本控制系统简介 1.1、版本控制前生今世 版本控制系统Version Control Systems,简称 VCS是将『什么时候、谁、对什么文件…...

substrate中打印调试信息的多种方式详解

目录 1. 获取substrate-node-template代码2. 添加一个用于测试的pallet至依赖到pallets目录3. log方式来输出信息3.1 将log依赖添到cargo.toml文件3.2 log-test/src/lib.rs修改call方法 3.3 polkadot.js.调用测试函数do_something_log_test4. printable trait方式来输出信息4.1…...

Disentangled Graph Collaborative Filtering

代码地址:https://github.com/ xiangwang1223/disentangled_graph_collaborative_filtering Background: 现有模型在很大程度上以统一的方式对用户-物品关系进行建模(将模型看做黑盒,历史交互作为输入,Embedding作为输出。)&…...

Nginx快速上手

Nginx快速上手 OVERVIEW Nginx快速上手一、基本概念1.Nginx初步认识2.正向/反向代理(1)正向代理(2)反向代理 二、Nginx 安装和配置1.安装2.Nginx指令3.Nginx配置 三、Nginx的使用1.Web服务器(1)静态网页存储…...

【设计模式】实际场景解释策略模式与工厂模式的应用

文章目录 前言策略模式概念场景示例 工厂模式概念场景示例 策略模式与工厂模式的比较相同点不同点 总结 前言 策略模式和工厂模式是常见的设计模式,它们可以帮助我们更好地组织和管理代码,提高代码的可维护性和可扩展性。 在本篇博客中,我将…...

外包干了三年,算是废了...

先说一下自己的情况。大专生,19年通过校招进入湖南某软件公司,干了接近3年的测试,今年年上旬,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了三年&#xff0c…...

九龙证券|光模块概念股封单资金超3亿元,传媒板块涨停潮来袭

今天A股三大股指低开低走。沪深两市收盘共37股涨停。剔除4只ST股,合计33股涨停。另外,10股封板未遂,整体封板率为78.72%。 涨停战场: 华工科技封单资金超3亿元 从收盘涨停板封单量来看,同方股份封单量最高&#xff0…...

[ES6] 数组

[ES6] 数组 数组的创建类数组对象可迭代对象的转换 扩展方法findfindIndexfillcopyWithinentrieskeysvaluesincludesflatflatMap 扩展运算符复制数组合并数组 数组缓冲区创建数组缓冲区视图创建 定型数组创建通过数组缓冲区生成通过构造函数 定型数组特性 拷贝浅拷贝深拷贝 数组…...

【问题描述】编写一个程序计算出球、圆柱和圆锥的表面积和体积。

【问题描述】 编写一个程序计算出球、圆柱和圆锥的表面积和体积。 要求: (1)定义一个基类,至少含有一个数据成员半径,并设为保护成员; (2)定义基类的派生类球、圆柱、圆锥&#…...

Python 人工智能:16~20

原文:Artificial Intelligence with Python 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的形象,只关心如何…...

【华为OD机试真题】最优资源分配(javapython)

最优资源分配 知识点数组贪心Q时间限制:1s空间限制:32MB限定语言:不限 题目描述: 某块业务芯片最小容量单位为1.25G,总容量为M1.25G,对该芯片资源编号为1,2,…,M。该芯片支持3种不同的配置,分别为A、B、C。 配置A:占用容量为1.251=1.25G 配置B:占用容量为1.252=2…...

git的使用——操作流程

一、什么是git git是一个开源的分布式版本控制软件,能够有效并高效的处理很小到非常大的项目。 二、添加SSH公钥 安装下载后,会发现鼠标右击,会出现 Git Bash Here 这个选项,如图所示,点击进入 1.打开git窗口后&…...

Ae:自动定向

Ae 菜单:图层/变换/自动定向 Auto-Orient 快捷键:Ctrl Alt O 自动定向 Auto-Orient是 Ae 图层中的一个附加的、隐藏实现(不会在时间轴面板上更改属性的值)的功能,它可以使得图层自动旋转或改变方向以朝向指定的运动路…...

ClickHouse入门详解

ClickHouse基础部分详解 一、ClickHouse简介二、ClickHouse单机版安装2.1、ClickHouse安装前准备环境2.2、ClickHouse单机安装2.3、ClickHouse一些默认路径2.4、ClickHouse端口说明 三、ClickHouse数据类型四、ClickHouse的表引擎4.1 MergeTree4.1.1 partition by 分区 五、Cli…...

javaweb笔记2

JSP 1、在webapp的根目录下新建一个index.jsp文件,访问以下地址: http://localhost:8080/webappName/index.jsp 实际上访问这个index.jsp文件,底层执行的是:index_jsp.class这个程序。 这个index.jsp会被tomcat翻译成index_jsp.j…...

【IIS搭建网站】本地电脑做服务器搭建web站点并公网访问「内网穿透」

文章目录 1.前言2.Windows网页设置2.1 Windows IIS功能设置2.2 IIS网页访问测试 3. Cpolar内网穿透3.1 下载安装Cpolar3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5.结语 1.前言 在网上各种教程和介绍中,搭建网页都会借助各种软件的帮助,比如…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

生成 Git SSH 证书

🔑 1. ​​生成 SSH 密钥对​​ 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​: -t rsa&#x…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...

Robots.txt 文件

什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...

Web后端基础(基础知识)

BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器,应用程序的逻辑和数据都存储在服务端。 优点:维护方便缺点:体验一般 CS架构:Client/Server,客户端/服务器架构模式。需要单独…...

goreplay

1.github地址 https://github.com/buger/goreplay 2.简单介绍 GoReplay 是一个开源的网络监控工具,可以记录用户的实时流量并将其用于镜像、负载测试、监控和详细分析。 3.出现背景 随着应用程序的增长,测试它所需的工作量也会呈指数级增长。GoRepl…...