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"。
本文探讨了StringBuilder类与String对象在字符串操作方面的区别。StringBuilder适用于大量字符串操作场景,能有效提升性能;而String对象不可变,适合少量操作。文章通过示例代码展示了两者的工作原理及应用场景。
1519

被折叠的 条评论
为什么被折叠?



