2026-3-26、可变字符串类型StringBuilder
*为什么使用StringBuilerstring是不可变字符串类型意味着一旦修改就无法修改stringsHello;ss World;// 看起来是修改实际上是创建了新对象// 原来的Hello对象还在内存中stringresult;for(inti0;i1000;i){resulti.ToString();// 每次都创建新对象共创建1000个对象}而StringBuilder是可变的所有的操作都在同一个对象上完成StringBuildersbnewStringBuilder();sb.Append(Hello);// 直接在原对象上操作sb.Append( World);// 继续在原对象上操作sb.Append(!);// 还是在原对象上操作// 整个过程只创建了一个对象StringBuilder的语法// 必须引入System.Text命名空间usingSystem.Text;//visualStudio会自动完成此步骤// 方式1无参构造默认容量16StringBuildersb1newStringBuilder();// 方式2指定初始容量推荐StringBuildersb2newStringBuilder(100);// 预分配100字符空间// 方式3初始化时指定字符串StringBuildersb3newStringBuilder(Hello);// 方式4指定字符串和容量StringBuildersb4newStringBuilder(Hello,100);// 方式5指定最大容量防止过度增长StringBuildersb5newStringBuilder(100,1000);// 初始100最大1000容量和长度的区别StringBuildersbnewStringBuilder(Hello,20);Console.WriteLine($当前长度:{sb.Length});// 5 - 实际字符数Console.WriteLine($当前容量:{sb.Capacity});// 20 - 可容纳的字符数常用方法Append方法StringBuildersbnewStringBuilder();// 追加各种类型sb.Append(Hello);// stringsb.Append( );// charsb.Append(123);// intsb.Append(3.14);// doublesb.Append(true);// boolsb.Append(DateTime.Now);// DateTime// 追加数组int[]numbers{1,2,3};sb.Append(numbers);// 输出: Int32[]// 追加字符串的一部分sb.Append(World,0,3);// 从索引0开始取3个字符Wor链式调用stringresultnewStringBuilder().Append(Hello).Append( ).Append(World).Append(!).ToString();AppendLine()方法StringBuildersbnewStringBuilder();// 追加字符串并换行sb.AppendLine(第一行);sb.AppendLine(第二行);sb.AppendLine(第三行);// 不带参数只换行sb.AppendLine();Insert方法StringBuildersbnewStringBuilder(Hello World!);// 在指定位置插入sb.Insert(5,, C#);// 在索引5处插入 - Hello, C# World!// 在开头插入sb.Insert(0, );// Hello, C# World!// 在结尾插入sb.Insert(sb.Length, );// Hello, C# World! // 插入多种类型sb.Insert(0,123);// 数字sb.Insert(0,3.14);// 浮点数sb.Insert(0,true);// 布尔值// 插入重复字符sb.Insert(0,*,5);// 在开头插入5个星号 - ***** Hello...Remove方法删除内容StringBuildersbnewStringBuilder(Hello, C# World!);// 删除指定位置的字符sb.Remove(5,8);// 从索引5开始删除8个字符// 原字符串Hello, C# World!// 删除:, C# Worl// 结果Hello!d!// 删除第一个字符sb.Remove(0,1);// 删除最后一个字符sb.Remove(sb.Length-1,1);// 清空全部内容sb.Remove(0,sb.Length);// 或者使用sb.Length0;// 或者使用sb.Clear();// .NET 4.0Replace方法替换内容StringBuildersbnewStringBuilder(Hello World!);// 替换字符串sb.Replace(World,C#);// Hello C#!// 替换单个字符sb.Replace( ,_);// Hello_C#!// 替换所有出现的字符sb.Replace(o,0);// Hell0_C#!// 只替换前N个通过Substring实现intindexsb.ToString().IndexOf(l);if(index0){sb[index]L;// 将第一个l替换为L}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2454172.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!