String 和 StringBuilder
String 类型在C#中用于保存字符,属于引用类型,一旦创建就不能再修改。
1.在创建新字符串时,会在内存中重新分配空间。
string str="hello world";
2.把一个字符串赋值给另外一个字符串,也会重新分配空间。
string str1=str;
3.修改字符串的值,也会重新分配空间。
string str1="hello";
str1="HELLO";
注:重新赋值之后,原来的 hello 已经废弃,但是还占着内存空间,需要使用GC垃圾回收器,让GC回收不再使用变量
4.多个字符串合并,也会重新分配空间
string str2 = str + str1;
StringBuilder 类型表示【可变字符字符串】类型,其中的字符可以被改变,增加,删除,并且可以自由扩展大小。
StringBuilder strigBuilder =new StringBuilder();//创建StringBuilder
strigBuilder.Append("hello");//添加字符串
strigBuilder.Remove(1, 2);//从下标为1开始移除两个字符
1.一个StringBuilder 默认容量是16,当向一个已满的StringBuilder添加字符时,其会自动申请内存进行扩容。
扩容规律:扩容没有超过20,就扩容20,超过20就超出多少扩容多少
StringBuilder stringBuilder1=new StringBuilder("helloworldhelloworld");//初始数20
情况1: stringBuilder1.Append("helloworld");//添加10
Console.WriteLine(stringBuilder1.Capacity);//输出40
情况2: stringBuilder1.Append("helloworldhelloworldhello");//添加25
Console.WriteLine(stringBuilder1.Capacity);//输出45
//在执行情况1或情况2之后再次进行添加操作则会将空间翻倍
stringBuilder10.Append("helloworldhelloworldhelloworld");//添加30
Console.WriteLine(stringBuilder1.Capacity);//输出80
2.可以重新赋值。
StringBuilder strigBuilder2 =new StringBuilder();
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库