首页 > 其他分享 >关于一些字符串操作的常用方法

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

时间:2024-09-12 09:13:39浏览次数:12  
标签:常用 Console string temp StringBuilder WriteLine 字符串 操作

字符串操作

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

字符串截取
            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


字符串拆分
           //拆分方式1
           string 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

标签:常用,Console,string,temp,StringBuilder,WriteLine,字符串,操作
From: https://www.cnblogs.com/fanrenni/p/18409469

相关文章

  • 前端vue2 常用的函数
    1、在el-menu开启路由模式,default-active使用动态值等于当前路由,就需要用:default-active="$route.path" 2、阿里巴巴矢量图icfont的使用 ①将自己需要的图标下载到矢量库对应的项目文件中 ②更新对应的css代码,点击css代码链接,更新到本地去 ③使用<iclass="iconfont......
  • 编程讲解视频中老师们经常用的截图软件
    前言:        本人第一次发博客,如果写的不好请见谅进入主题:    本人应为学编程的过程中看到很多的编程老师们在讲解的过程中经常使用一款叫做Snipaste的截图软件,本人认为很不错,挺方便的,于是在网上查找这款软件,因为开始不知道这款软件的名字是什么,于是就奔......
  • 监管动态| 网络空间协会首次发布合规常用APP清单,是否会有第二批?
    9月10日中国网络空间安全协会官网发布公告,协会组织指导网上购物、地图导航、浏览器、新闻资讯、在线影音、电子图书、拍摄美化、云盘、短视频、演出票务共10类62款App运营方,对照《中华人民共和国网络安全法》《中华人民共和国个人信息保护法》《常见类型移动互联网应用程序必要个......
  • 在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境
    目录在线编程实现!如何在Java后端通过DockerClient操作Docker生成python环境一、为什么要用后端程序操作Docker二、安装Docker1、安装Docker2、启动Docker三、DockerClient与CMD操作Docker的区别四、干货!如何使用DockerClient实现在线编程1、前置工作①引入并安装依赖......
  • TreeMap源码详解—彻底搞懂红黑树的平衡操作
    介绍TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也就是说TreeSet里面有一个TreeMap(适配器模式)。JavaTreeMap实现了SortedMap接口,也就是说会按照key的大小顺序对Map中的元素进行排序,key大小的评判可以通过其本身的自然顺序(naturalordering),也可以通......
  • TreeMap源码详解—彻底搞懂红黑树的平衡操作
    介绍TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也就是说TreeSet里面有一个TreeMap(适配器模式)。JavaTreeMap实现了SortedMap接口,也就是说会按照key的大小顺序对Map中的元素进行排序,key大小的评判可以通过其本身的自然顺序(naturalordering),也可以......
  • C++中的数组,字符串数组,pair数组
    1.C++中的字符串数组: 2.C++中的常量数组 这个constpair<int,string>valueSymbols[]定义了一个常量数组,数组中的每个元素都是一个pair<int,string>类型的对象。pair是C++标准模板库(STL)中的一个模板类,用于将两个值组合成一个单一的对象。在这个特定的例子中,pair的第一个......
  • C++入门教程:第八篇 - 文件I/O操作
    C++入门教程:第八篇-文件I/O操作文件I/O(输入/输出)是程序与外部存储设备进行数据交换的关键操作。在C++中,文件I/O操作由标准库提供的流类完成。通过这些流类,程序可以读写文件,处理文件内容。本文将介绍C++中的文件I/O基础,包括如何打开、读写和关闭文件。1.文件流基础C++提......
  • css常用方式
     常容器用的样式:position:relative|absolute;/*相对定位|决定定位*/display:flex;/*浮动*/line-height:0px;/*div撑开问题*/对 rpx 详细说明:设计师在提供设计图时,一般只提供一个分辨率的图。严格按设计图标注的px做开发,在不同宽度的手机上界面很容易变......
  • AIAutoPrediction足球数据分析软件工具安装教程(附带操作截图)
    文章目录前言一、AIAutoPrediction是什么?二、AIAutoPrediction能做什么?即时大小球预测即时亚盘预测大小球、亚盘初盘分析三、安装教程1、软件下载2、打开安装包,进行软件安装3、选择安装目录4、执行安装5、安装完成6、开始使用总结前言在绿茵场上,每一脚传球、每一......