DotNet中StringBuilder和String的区别
来源:互联网 发布:c一维数组排序算法 编辑:程序博客网 时间:2024/05/29 13:41
StringBuilder和String的区别
简单说String是定长,StringBuilder是定长。(String是.NET Framework里面的类,小写的string是C#语言中的类,string最终编译时会转化成String)
如定义:
string s1 = "111";string s2 = s1;
上述代码,s1和s2的值相同,但是他们不是同一个对象。
每次使用 System.String 类中的方法时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。如果对string进行拼接,实际过程是这样:新建一个字符串,进行连接后,最后赋值,因此,如果对String赋值多次,就会在内存中保存多个这个对象的副本,浪费系统资源。
string str="111"+"222";内存中有三个string(分别为"111","222","111222",.Net垃圾处理机制来自动处理掉“111”,"222"两个资源)
相比之下StringBuilder则不同:
StringBuilder对象是动态对象,允许扩充它所封装的字符串中字符的数量。但扩容具体如下:
例如,可以创建 StringBuilder 类的带有字符串“111”(长度为 3)的一个新实例,同时可以指定该对象的最大容量为 10。当修改StringBuilder 时,在达到容量之前,它不会为其自己重新分配空间。当达到容量时,将自动分配新的空间且容量翻倍。可以使用重载的构造函数之一来指定 StringBuilder 类的容量。以下代码示例指定可以将 StringBuilderCustom对象扩充到最大 25 个空白。
StringBuilderCustom.Capacity = 25;
可用EnsureCapacity 方法来检查当前 StringBuilder 的容量。如果容量大于传递的值,则不进行任何更改;但是,如果容量小于传递的值,则会更改当前的容量以使其与传递的值匹配。也可以查看或设置 Length 属性。如果将 Length 属性设置为大于Capacity 属性的值,则自动将 Capacity 属性更改为与 Length 属性相同的值。如果将 Length 属性设置为小于当前StringBuilder 对象内的字符串长度的值,则会缩短该字符串。
关于StringBuilder和String选择:
当我们需要多次的对一个字符串进行多次操作的时候,StringBuilder的效率要 高于string ,反之使用String因为他封装的方法较多,使用方便。
- DotNet中StringBuilder和String的区别
- DotNet中的String和StringBuilder
- c#中string和stringbuilder的区别
- C#中string和stringBuilder的区别
- C#中string和stringBuilder的区别
- C# 中 StringBuilder和String的区别
- C# 中String和 Stringbuilder的区别
- C#中StringBuilder和String的区别
- C# 中String和 Stringbuilder的区别
- .NET中string和StringBuilder的区别
- C#中string和stringBuilder的区别
- C#中stringBuilder和string的区别
- C#中String和StringBuilder的区别
- 使用StringBuilder, StringBuilder和String的区别
- 使用StringBuilder, StringBuilder和String的区别
- 使用StringBuilder, StringBuilder和String的区别
- 使用StringBuilder, StringBuilder和String的区别
- StringBuilder 和 String 的区别?
- iOS9 中不支持http
- 我对递归的认识
- MySQL 常用日期和时间处理函数
- iTerm2 快捷键
- 密码学(2)-古典密码学
- DotNet中StringBuilder和String的区别
- 数据结构实现之索引优先队列用例(多路归并)
- Ceph安装
- HDOJ 2041 超级楼梯
- 使用struts2+spring+hibernate测试多对多关系映射的时候出现懒加载问题:could not initialize proxy - no Session
- 树的打印方式
- mybatis+log4j 打印sql
- LCA树两个节点最低公共祖先
- Activity与Service的交互一