C# String和StringBuilder的解释
字符串添加或删除不频繁用string,否则用StringBuilder
1 String a1 = "abc"; //分配固定的内存大小 2 a1+="def"; //创建新的内存分配a1,代价比较昂贵 3 4 5 StringBuilder sb = new StringBuilder(20); //指定分配大小 6 sb.Append('abc'); //分配到堆区 7 sb.Append('def'); //不会被销毁,而是直接追加到后面。
String和StringBuilder的区别
String声明之后内存大小不能修改,StringBuilder可以自由扩展大小(String分配在栈区,StringBuilder分配在堆区)
1 StringBuilder sb = new StringBuilder(5); 2 //指定分配大小,性能会得到提升。在达到容量之前,不会为自己重新分配空间。如果超过指定大小会按照当前大小倍增 3 sb.Append('china'); 4 sb.Capacity = 25; //另外,可以使用读/写Capacity属性来设置对象的最大长度。
Append方法
StringBuilder sb = new StringBuilder("Hello World!"); sb.Append(" What a beautiful day."); Console.WriteLine(sb); //结果:Hello World! What a beautiful day.
AppendFormat 方法
int MyInt = 25; StringBuilder sb = new StringBuilder("Your total is "); sb.AppendFormat("{0:C} ", MyInt); Console.WriteLine(sb); //结果:Your total is $25.00
Insert方法
//以下示例使用此方法将一个单词插入到StringBuilder的第六个位置。 StringBuilder sb = new StringBuilder("Hello World!"); sb.Insert(6,"Beautiful "); Console.WriteLine(sb); //结果:Hello Beautiful World!
Remove方法
//以下示例使用Remove方法缩短StringBuilder。 StringBuilder sb = new StringBuilder("Hello World!"); sb.Remove(5,7); Console.WriteLine(sb); //结果:Hello
Replace方法
//以下示例使用Replace方法来搜索StringBuilder对象,查找所有的感叹号字符(!),并用问号字符(?)来替换它们。 StringBuilder sb = new StringBuilder("Hello World!"); sb.Replace('!', '?'); Console.WriteLine(sb); //结果:Hello World?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)