当前位置:编程学习 > C#/ASP.NET >>

C# string类和stringBuilder类的区别

首先两个类的工作原理不同:string类是一种传统的修改字符串的方式,当把一个字符串添加到另一个字符串时,系统先是把两个字符串写入内存,接着删除原来的string对象,然后创建一个string对象,并读取内存中的数据付给该对象。

  而System.Text名字空间下的StringBuilder类就不一样了,StringBuilder 类提供的Append方法能够在已有对象的原地进行字符串的修改。这样就会比string的方式省了不少时间(当在一个循环中将一个字符串连接在一起的时候,使用StringBuilder类可以提升性能)

 

一下摘抄StringBuilder类的说明:

①设置容量和长度

StringBuilder MyStringBuilder = new StringBuilder("Hello World");

 

StringBuilder 对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是可以为它的最大可容字符数指定一个值,即该对象的容量,当修改StringBuilder达到最大容量,它将自动分配新的空间且容量翻倍。

StringBuilder MyStringBuilder = new StringBuilder("Hello,World!",25);

 

也可以用MyStringBuilder.Capatity = 25 ,即Capacity属性来设置对象的最大长度

②StringBuilder方法的使用

Append 将字符串追加到当前StringBuilder的结尾

 

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的第六个位置

 

StringBuilder sb = new StringBuilder("Hello,World!");            sb.Insert(6,"beautiful");

 

输出:Hello,beautifulWorld!

 

Remove 从当前StringBuilder 对象中移除指定数量的字符。

从零开始的索引处删除指定的字符数量

 

StringBuilder sb = new StringBuilder("Hello,World!");            sb.Remove(4,3);

 

输出:Hellorld!

 

Replace 替换指定索引处的字符。

StringBuilder MyStringBuilder = new StringBuilder("Hello World!"); 
MyStringBuilder.Replace(!,  ); 
Console.WriteLine(MyStringBuilder);  

    
补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,