C#String & StringBuilder
来源:互联网 发布:mac电脑如何卸载sdk 编辑:程序博客网 时间:2024/05/18 02:21
在看J2SE的时候,再次看到了String这个字眼,其实在C#系统实践的过程中就多次使用了:
对于String和StringBuilder最大的区别就是可变不可变的问题,其实这个在数据类型中是存在多对对比并行存在的,就比如Char和Varchar的完美对比。
String:
在机房收费系统又或者学生信息管理系统中,由于整个系统相对来说就是小型化的,所以我们最多就是使用了String类型,来完成我们对于字符串的定义。其实String就是一个字符串常量,是不可改变的,就Java内存分析角度来说,就是每次只要字符串的内容发生改变,就必须重新分配内存。假设一个有着一个10000次的一个循环,每次迭代都重新分配一下,这样性能低就可想而知。
StringBuilder:
它是在String的完善的基础上,才被人所使用的。StringBuilder懂得了分配一个缓存,也就是一个工作区来解决这些问题,当字符串大小没有超过容量时,不会分配新的容量,当超过时,就会自动增加容量,这样等所有的事情全部执行完成之后,直接提交,则会提高性能。
虽然StringBuilder对象是动态对象,但是扩充所封装的字符串的数量,再此容量不要和之前了解的StringBuilder的长度混淆在一起,
For Example:
可以创建一个带有字符串“friends"(长度为7)的例子,如果我指定该对象的最大容量为25,那么StringBuilder可以将MyStringBuilder的对象扩充到最大25的空白:
StringBuilder MyStringBuilder=new StringBuilder(Hello,My dear Friends!", 25);最大容量可以这样来定义:
MyStringBuilder.Capacity =25;在我们项目中,我们最常用的还是.Append:
StringBuilder StrBuilder=new StringBuilder();StringBuilder.Append(" ");StringBuilder.Append(" ");StringBuilder.Append(" ");StringBuilder.Append(" ");……这样使用的好处也是为了提高性能。
在StringBuilder中,常用的几种方法为:
StringBuilder.Append()。将内容追加到当前StringBuilder字符串的结尾。Eg:StringBuilder MySB = new StringBuilder("您好!"); MySB.Append(" 大家好!"); Console.WriteLine(MySB); StringBuilder.AppendFormat()。用一个带格式文本来代替字符串要传递的符号。Eg:int MyMoney = 24; StringBuilder MySB = new StringBuilder("欠我的钱是 "); MySB.AppendFormat("{0:C} ", MyMoney); Console.WriteLine(MySB); StringBuilder.Insert(int,string)。将字符串和对象插入到当前StringBuilder字符串的指定位置。StringBuilder.Remove(p,n)。在当前StringBuilder对象中移除指定的字符,就是说从p位置开始删除n个字符。StringBuilder.Replace(a,b)。就是用b替换a指定字符串,a和b都是字符或字符串。Eg: string a="aaa aaa aaa"; string b=a.Replace(‘a’,‘w’); 结果输出“www www www”。
除了这两种之外,还有一种就是StringBuffer,和StringBuilder相比来说,最大的优势就是适用于多线程的情况下,总结一下三者的使用情况:
1)如果操作量少 ---String
2)单线程操作字符串缓冲区下操作大量数据 ---StringBuilder
3)多线程操作字符串缓冲区下操作大量数据 ---StringBuffer
- C#String & StringBuilder
- String和StringBuilder(C#)
- 【C#】StringBuilder和string对比
- C#.NET string和StringBuilder区别
- [我眼中的C#]String和StringBuilder
- C#:string、stringBuffer、stringBuilder的区别
- C#String和StringBuilder的用法
- String StringBuilder
- String(StringBuilder)
- [mqt_2003的专栏]String和StringBuilder(C#)
- C/C++字符串处理盘点:Char*/String/StringBuilder/TextPool/Rope
- C/C++字符串处理盘点:Char*/String/StringBuilder/TextPool/Rope
- C/C++字符串处理盘点:Char*/String/StringBuilder/TextPool/Rope
- C#-string,StringBuilder和Regex类的讲解
- ASP.NET(C#)中string与stringBuilder的区别
- C#: StringBuilder的用法及和String的区别
- StringBuilder类与String类的区别(C#)
- StringBuilder类与 String类的区别(C#)
- hdu 2036 ||nyoj1011 叉乘求多面形面积(无论是凸凹边形都可以)
- leetcode Remove Duplicates from Sorted Array
- 使用Apache POI读取Excel文件
- Play的验证码
- java cp 和 hadoop cp
- C#String & StringBuilder
- 关于这次出差--解决自动制浆的一点收获---模拟信号的不稳定---变频器对整个电路的影响
- Swift调用OC之文件操作-NSBundle
- MATLAB中subplot的用法
- HDU 4614 Vases and Flowers [二分 + 线段树]
- leetcode Reverse Nodes in k-Group
- parquet列存储
- 五一巨献,问答有礼,105QB送给IT互联网界的劳动人民
- RubyOnRails在redactor中通过paperclip实现图片上传并编辑的功能