StringBuilder sb1 = new StringBuilder("www.devsiki.com");
StringBuilder sb2 = new StringBuilder(20);
StringBuilder sb3 = new StringBuilder("www.devsiki.com", 100);
string与StringBuilder的区别 , string是值类型StringBuilder是引用类型
当我们需要对一个字符串进行频繁的删除添加操作的时候,使用stringbuilder的效率比较高
1,Append()方法,给当前字符串追加一个字符
2,Insert()追加特定格式的字符串
3,Remove()从当前字符串中删除字符
4,Replace()在当前字符串中,用某个字符或者字符串全部替换另一个字符或者字符串
5,ToString()把当前stringBuilder中存储的字符串,提取成一个不可变的字符串
static void Main(string[] args)
StringBuilder sb = new StringBuilder("www.devsiki.com", 100);
sb.Append("/xxx.html");
Console.WriteLine(sb.ToString());
sb.Insert(0, "http://");
Console.WriteLine(sb);
sb.Remove(0, 3);
Console.WriteLine(sb);
sb.Replace(".", "-");
Console.WriteLine(sb);
Console.ReadKey();
www.devsiki.com/xxx.html
http://www.devsiki.com/xxx.html
p://www.devsiki.com/xxx.html
p://www-devsiki-com/xxx-html
StringBuilder sb = new StringBuilder();
sb.append( "B" ); // 追加一个字符:B
sb.insert( 0 , "A" ); // 在最前面插入一个:A
那么sb的结果就是:AB
在多线程中,由于StringBuilder的方法不是同步的,所有线程都可以自由地访问并更改StringBuilder对象。我们以一个简单的例子证明StringBuilder在多线程中不是线程安全的,我们通过将StringBuilder与线程安全的StringBuffer在多线程条件下执行同一个方法对比:定义StringBuilder 与 StringBuffer模拟多线程资源竞争的情景输出结果完整代码多次执行代码后,从输出结果来看,这两个字符串的长度相同。
//当我们对一个字符串需要频繁的删除和添加的时候,使用StringBuilder的效率较高
//第一种创建方式
StringBuilder sb1 = new StringBuilder("www.baidu.com");
//第二种创建方式
StringBuilder sb2 ...
StringBuilder是java.lang包下的一个子类,继承了AbstractStringBuilder类。常用StringBuilder的3个构造方法, 分别是:
1.无参构造StringBuilder()
1)在使用无参构造来构造StringBuilder对象的时候:代码如下:
StringBuilder sb = new StringBuilder();
2)而StringBuilder源码中的无参构造如下:
public StringBuilder() {
super(16)
string类型在进行运算的时候是重新生成了一个新的string对象,不适合大量频繁字符串的拼接或删除。StringBuilder进行运算时,是一直在已有对象操作的,适合大量频繁字符串的拼接或删除。
字符串一旦创建就不可修改大小,每次使用System.String类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的String对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用System.Text.StringBuilder类。所以对字符串添加或删除操作不频繁的话,就几个固定的string累加的时候就不需要StringBuilder了,毕竟StringBuilder的初始化也是需要时间的。...
一、使用背景:
String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。
在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。
例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。
前言在日常的开发中StringBuilder大家肯定都有用过,甚至用的很多。毕竟大家都知道一个不成文的规范,当需要高频的大量的构建字符串的时候StringBuilder的性能是要高...
C#中的String,StringBuilder 常用方法总结
学习C#已经有一段时间了,也接触到了C#中的许多类,许多方法,String类是提供的一个相当有用的类,通过这个类我们可以实现字符串最常用的的增删改查操作,以及字符串比较,字符串拆分成字符串数组,字符串复制,以及将字符串数组合并到字符串上,字符串的去空格操作,有必要进行一下归类,以方便我们进行记忆。
C#中,StringBuilder弥补了string在赋值时开辟新空间不足之处。
StringBuilder类型变量会初始化一段长度,供后续对该变量进行增加。当然也可以手动定义其长度
StringBuilder builder = new StringBuilder(10);
其缺点是需要较为精确估算出StringBuilder类型变量的长度,否则若在使用中实际builder长度超出了定义的长度,会自动开辟一段新的StringBuilder空间,并将原先的数据赋值给新的空间,旧的地址就变成了垃圾。