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?

 

 

posted @ 2022-06-24 14:15  Edmund2053  阅读(95)  评论(0编辑  收藏  举报