关于一些字符串操作的常用方法

news/2024/11/15 14:02:08/文章来源:https://www.cnblogs.com/fanrenni/p/18409469

字符串操作

关于一些字符串操作常用方法

字符串截取
            string temp = "大家好, 我叫张三。";//索引从0开始截取索引5后面的所有字符串(包括5)Console.WriteLine(temp.Substring(5));//索引从0开始,截取索引5后面4个字符串(包括5)Console.WriteLine(temp.Substring(5, 4));Console.ReadKey();  

输出结果

输出结果.png

注意:字符串中的空格也会占用一个字节

字符串插入
            string temp = "大家好, 我叫张三。";//插入字符串,从索引从0开始的第4位插入字符串Console.WriteLine(temp.Insert(4, "他叫李四,"));Console.ReadKey();  

输出结果:

image

字符串移除
            string temp = "大家好, 我叫张三。";//移除指定字符串,从索引起始为0的第4位开始移除1个字节。Console.WriteLine(temp.Remove(4,1));//移除了空格Console.ReadKey();  

输出结果

image

字符串替换
            string temp = "大家好, 我叫张三。";//字符串替换:将字符串中的所有张三全部替换为李四Console.WriteLine(temp.Replace("张三", "李四"));Console.ReadKey();  

输出结果:

image


字符串拆分
           //拆分方式1string temp = "ip:192.168.250.1,port:8000,这个部分不会进行分割";char[] chars ={','};// 然后根据 ',' 分割 IP 地址,并获取前两部分string[] newtemp = temp.Split(chars,2);//拆分方式2//如果改成下面这句代码就会全部进行分割// string[] newtemp = temp.Split(chars);foreach (string text in newtemp){Console.WriteLine("{0}", text);}Console.ReadKey();

输出结果:

拆分方式1:image


拆分方式2:image


字符串查找
           string temp = "192.168.250.1:8000:9000";//字符串查找,返回第一次出现“:”字符串的索引。Console.WriteLine("第一次出现“:”的索引是:"+temp.IndexOf(":"));//字符串查找,返回最后一次出现“:”字符串的索引。Console.WriteLine("最后一次出现“:”的索引是:" + temp.LastIndexOf(":"));//可搭配Substring方法使用,达到准确截取需要的字符串的目的。Console.WriteLine(temp.Substring(temp.IndexOf(":")+1,4));Console.WriteLine(temp.Substring(temp.LastIndexOf(":")+1,4));Console.ReadKey();

输出结果:
image

字符串大小写转换
            string temp = "Hello,World";Console.WriteLine(temp.ToLower());//全部转小写Console.WriteLine(temp.ToUpper());//全部转大写//字符判断,判断字符串中的索引从零开始的第三位是否为大写的,返回值为布尔Console.WriteLine(Char.IsUpper(temp, 3));Console.ReadKey();

输出结果:
image

空格删除
 string temp = "        大家好, 我叫张三。       a";//去空格:Trim删除字符串前后的空格, //TrimStart:删除字符串前的。TrimEnd:删除掉字符串后的空格Console.WriteLine(temp.Trim());//也可以指定字符(仅限char类型,string不行)Console.WriteLine(temp.Trim('a'));Console.ReadKey();  

输出结果:
image


StringBuilder类的基本使用

字符串追加
            StringBuilder sb = new StringBuilder("Hello,World!");//字符串追加sb.Append("我是字符串追加");Console.WriteLine(sb.ToString());Console.ReadKey();

输出结果:

image

字符串替换
            StringBuilder sb = new StringBuilder("Hello,World!");//字符串替换sb.Replace("!", "???");Console.WriteLine(sb.ToString());Console.ReadKey();

输出结果:

image

字符串插入
           StringBuilder sb = new StringBuilder("哈喽,树哥!");//字符串插入,索引位置加插入内容sb.Insert(2, "啊");Console.WriteLine(sb.ToString());Console.ReadKey();

输出结果:

image


字符串移除
            StringBuilder sb = new StringBuilder("Hello,World!");//字符串移除,5是索引,7是要删除的字节数sb.Remove(5, 7);Console.WriteLine(sb.ToString());Console.ReadKey();

输出结果:

image


String与StringBuilder的区别

String 类型在 .NET 中是不可变的(immutable)。这意味着一旦一个字符串被创建,它的内容就不能被改变。每次你对字符串进行修改(如添加、删除、替换字符等),实际上都会在内存中创建一个全新的字符串对象,然后将修改后的内容复制到这个新对象中。这个过程涉及到分配新的内存和复制大量的字符,特别是当字符串很长或者修改操作很频繁时,这会导致显著的性能开销。

与 String 不同,StringBuilder 是可变的(mutable)。它内部维护了一个字符数组,当你对 StringBuilder 对象进行修改时(如添加、删除字符),它通常只是更新这个内部数组的内容,而不需要创建一个新的字符串对象。这减少了内存的分配和复制操作,从而提高了性能。

示例:

 string temp = "";Stopwatch sw = new Stopwatch();sw.Start();for (int i = 0; i < 100000; i++)//耗时操作{temp += i.ToString();}sw.Stop();Console.WriteLine("temp所用时间:" + sw.Elapsed);StringBuilder sb = new StringBuilder();sw.Restart();for (int i = 0;i<100000;i++)//耗时操作{sb.Append(i);}sw.Stop();Console.WriteLine("sb所用时间:" + sw.Elapsed);Console.ReadKey();

输出结果:

image

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

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

相关文章

前端vue2 常用的函数

1、在el-menu开启路由模式,default-active使用动态值等于当前路由,就需要用:default-active="$route.path" 2、阿里巴巴矢量图icfont的使用①将自己需要的图标下载到矢量库对应的项目文件中 ②更新对应的css代码,点击css代码链接,更新到本地去 ③使用<i class…

证券公司上千台服务器数据同步时,如何进行文件传输管控?

证券公司的数据中心是一个至关重要的基础设施,它承担着数据处理、存储、分析和传输等重要任务,对于保障证券公司的业务连续性、提高运营效率、降低风险等方面具有不可替代的作用。数据中心是企业数据集中的载体和支持平台,是实现数据集中的必要手段。在证券公司中,数据中心…

API接口:功能强大,应用广泛

在当今的数字化世界中,应用程序编程接口(API)无处不在,它们是现代技术架构中不可或缺的组成部分。API接口不仅连接了不同的软件系统,还促进了数据的流动和业务流程的自动化。本文将带您深入了解API接口的功能和广泛应用。一、API接口的定义 API接口是一种允许软件应用程序…

Packaging.DebUOS 专门为 dotnet 应用制作 UOS 安装包

Packaging.DebUOS 是我所在的团队开发开源的一款专门用在为 dotnet 的应用制作成为符合要求的 UOS 统信系统软件安装包的工具,此工具可以辅助开发者使用现有的工具链经过简单的配置即可完成安装包的制作Packaging.DebUOS 是我所在的团队开发开源的一款专门用在为 dotnet 的应用…

python根据关键字查找文件所在路径位置

import os import fnmatchdef find_files(directory, keyword):""" 在给定目录及其子目录中查找包含关键词的文件 """for root, dirs, files in os.walk(directory):for basename in files:if keyword in basename:# 使用 os.path.join 来确保路…

dotnet C# 设置 X11 应用窗口背景透明

本文将告诉大家如何在 X11 里面设置窗口透明不同于在 WPF 里面可以使用 AllowsTransparency 简单方便的设置透明,在 X11 里面设置窗口透明的方法比较绕。需要获取用于传入给到 XCreateWindow 的 Visual 指针,才能实现窗口透明 感谢 walterlv 大佬提供此方法,我只是代为记录的…

学习 CPF 框架笔记 了解 X11 绘制图片方法

本文记录我学习 CPF 框架的笔记,本文将记录我从 CPF 框架里面学习到的如何 X11 绘制图片的方法开始之前,先感谢小红帽开源的 CPF 框架,这是一个纯 C# dotnet 实现的跨平台 UI 框架,支持Windows、Mac、Linux系统,其中 Linux 系统方面支持国产化平台,支持龙芯、飞腾、兆芯、…

dotnet C# 警惕可空结构体的方法内部赋值无效

本文将记录一个 C# dotnet 里的一个稍微隐藏的行为,那就是如果有一个结构体存在某个的方法,此方法的作用是修改结构里面的字段或属性的值,那此时将会在可空的结构体调用此方法时,发现没有真正修改到可空结构体局部变量本身其实这个问题非常好理解,只不过可能在编写代码的时…

南沙C++信奥老师解一本通题: 1206:放苹果

​【题目描述】把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。【输入】第一行是测试数据的数目t(0<=t<=20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。【输出】…

ServiceMesh 1:大火的云原生微服务网格,究竟好在哪里?

1 关于云原生 云原生计算基金会(Cloud Native Computing Foundation, CNCF)的官方描述是: 云原生是一类技术的统称,通过云原生技术,我们可以构建出更易于弹性扩展、极具分布式优势的应用程序。这些应用可以被运行在不同的环境当中,比如说 私有云、公有云、混合云、还有多…

数据库容灾等级

数据库容灾等级 在信息化时代,企业的数据安全和业务连续性变得至关重要,容灾备份作为确保数据不丢失和业务不中断的重要措施备受关注。 我们通常将容灾备份分为四个等级,从最基本的本地备份到复杂的异地多活系统,每个等级的特点和适用场景各不相同。下面我们就来详细了解一…

Visual Studio 查看项目的能力

在 Visual Studio 里面,可以在项目里面通过配置 DiagnoseCapabilities 查看项目的能力。什么是项目的能力?项目的能力就是对当前项目来说,可以具备 VS 支持的功能,项目功能是确定项目类型、平台和特性的推荐方法查看项目的能力的功能只适合于框架开发者使用,用于了解当前的…