StringBuilder类可以在原来的字符的串上更改字符串内容。而string对象是恒定的,不可改变的,string的所有方法都仅仅是返回一个新的string对象,而原对象不会改变。
StringBuilder的优势是在String要做很多操作时,如大量的替换和串联,这个时候String每一次操作都会产生一个新的String对象,严重影响性能,而StringBuilder可以避免这个问题。也就是说在操作量不大的情况下,StringBuilder反而是没有性能优势的。
string是不能修改的:
string str = "a";
str = "b"; //str是被赋值了"b"没错,但是str里面原来的string值"a"并没有被修改。
string str = "a";
string str1 = str;
str += "b"; //此时str = "ab",str1 = "a";
=========================
StringBuilder str = new StringBuilder( "a" );
StringBuilder str1 = str;
str.Append( "b" );
//此时str.ToString()和str1.ToString()都是"ab"。
StringBuilder的优势是在String要做很多操作时,如大量的替换和串联,这个时候String每一次操作都会产生一个新的String对象,严重影响性能,而StringBuilder可以避免这个问题。也就是说在操作量不大的情况下,StringBuilder反而是没有性能优势的。
string是不能修改的:
string str = "a";
str = "b"; //str是被赋值了"b"没错,但是str里面原来的string值"a"并没有被修改。
string str = "a";
string str1 = str;
str += "b"; //此时str = "ab",str1 = "a";
=========================
StringBuilder str = new StringBuilder( "a" );
StringBuilder str1 = str;
str.Append( "b" );
//此时str.ToString()和str1.ToString()都是"ab"。