.NET中的StringBuilder

为什么要使用StringBuilder

为什么使用StringBuilder要从string对象的特性说起。

string对象在进行字符串拼接时,因为字符串的不可变性,string对象会每次拼接,都会复制一个副本出来进行运算,而本身的串仍然留在内存中,大量的临时片段会造成不可忽视的性能损耗。所以在进行大量的字符串拼接时建议使用StringBuilder

StringBuilder的简单使用方式

string s1 = "33";

string s2 = "44";

string s3 = "55";  //需求是把  s1 s2 s3拼接在一起。这是一种典型的字符串拼接。

//使用StringBuilder ,不会产生无用的临时字符串。

StringBuilder sb =new StringBuilder();

//拼接方式一

sb.Append(s1);

sb.Append(s2);

sb.Append(s3);

//拼接方式二   

//因为Append()方法会返回一个this,也就是对象本身。所以可以使用这种方式。

//链式编程  Jquery中常用这种方式

sb.Append(s1).Append(s2).Append(s3);

//最后把sb.ToString()一下就好了。

PS:AppendLine()方法可以 自动添加一个回车。

时间: 2024-11-13 06:35:26

.NET中的StringBuilder的相关文章

JAVA之旅(十七)——StringBuffer的概述,存储,删除,获取,修改,反转,将缓存区的数据存储到数组中,StringBuilder

JAVA之旅(十七)--StringBuffer的概述,存储,删除,获取,修改,反转,将缓存区的数据存储到数组中,StringBuilder 讲完String,我们来聊聊他的小兄弟 一.StringBuffer概述 关于StringBuffer这个对象,Buffer是什么意思?缓冲区的意思,String一旦初始化时不可以被改变的,而StringBuffer是可以的,这就是区别,特点: StringBuffer是一个容器 可以字节操作多个数据类型 最终会通过toString方法变成字符串 存储 S

C#中的StringBuilder

1. 使用StringBuilder的好处 由于string对象是不可更改的,我们每次使用string类的方法时,都会在内存中重新创建一个新的string对象,这时候就要为该对象分配内存空间了.如果在一段代码中,频繁执行string类的方法来修改字符串对象,那么内存消耗就会很大.例如,在一个循环中,频繁地进行字符串拼接的操作,假如这个循环执行多次,那么每次拼接字符串所产生的字符串将会吃掉很多内存空间.所以,为了提升程序的性能,在需要修改字符串而不要重新创建字符串的时候,我们采用System.Te

C#中String StringBuilder StringBuffer

String和StringBuilder和StringBuffer,这三个都是值得深究一翻的,可能很多人会说,实在不行的话,都全部用StringBuilder,啥事没有,我不能说你的想法事不正确的,但是我可以给出更好的建议.下面简单介绍一下这三个类.  String类 在我们平时的使用当中很容易不注意到的是,自己写的代码很容易发生了装箱的操作(把值类型转换为引用类型).就比如很常见的,一个字符串拼接 string str=9+"test"; 通过查看IL代码可以知道这里发生了装箱的操作

Java 中 StringBuilder 在高性能用法总结

关于StringBuilder,一般同学只简单记住了,字符串拼接要用StringBuilder,不要用+,也不要用StringBuffer,然后性能就是最好的了,真的吗吗吗吗? 还有些同学,还听过三句似是而非的经验: 1. Java编译优化后+和StringBuilder的效果一样: 2. StringBuilder不是线程安全的,为了“安全”起见最好还是用StringBuffer: 3. 永远不要自己拼接日志信息的字符串,交给slf4j来. 1. 初始长度好重要,值得说四次. StringBu

JAVA中String和StringBuilder类的特点及使用

转自:https://www.imooc.com/code/2202 仅做个人学习记录之用,侵删! 什么是 Java 中的字符串 在 Java 中,字符串被作为 String 类型的对象处理. String 类位于 java.lang 包中.默认情况下,该包被自动导入所有的程序. 创建 String 对象的方法: Java 中字符串的不变性 String 对象创建后则不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同.如下所示: 运行结果: 结合上面的代码,关于字符串小

StringBuilder与StringBuffer

转:http://www.cnblogs.com/pepcod/archive/2013/02/16/2913557.html JAVA中用于处理字符串常用的有三个类: java.lang.String. java.lang.StringBuffer. java.lang.StringBuilder, 这三者的共同之处都是 final 类,不允许被继承,这主要是从性能和安全性上考虑的,因为这几个类都是经常被使用着的,且考虑到防止其中的参数被修改影响到其它的应用. StringBuffer 与 S

StringBuffer与StringBuilder

有些时候,需要由较短的字符串构建字符串.比如,按键或来自文件中的单词.采用字符串连接的方式达到此目的效率比较低.每次连接字符串的时候,都会构建一个新的String对象,既耗时,又浪费空间.使用StringBuilder类就可以避免这个问题的发生啦. 如果需要用许多小段的字符串构建一个字符串,那么我们可以用一下的方式: StringBuilder sb = new StringBuilder(); sb.append(ch); sb.append(str); String message = sb

JAVA中用于处理字符串的“三兄弟”

JAVA中用于处理字符串常用的有三个类:java.lang.String.java.lang.StringBuffer.java.lang.StringBuilder,这三者的共同之处都是final类,不允许被继承,这主要是从性能和安全性上考虑的,因为这几个类都是经常被使用着的,且考虑到防止其中的参数被修改影响到其它的应用.StringBuffer与StringBuilder两个基本上差不多,只是StringBuffer是线程安全,可以不需要额外的同步用于多线程中:StringBuilder是非

Java中String连接性能的分析

总结:如果String的数量小于4(不含4),使用String.concat()来连接String,否则首先计算最终结果的长度,再用该长度来创建一个StringBuilder,最后使用这个StringBuilder来连接所有String.      我建议大家如果确定需要连接的String的数量小于4的,直接使用String.concat()来连接,虽然StringBundler能够帮你自动处理这一情况,但创建一个String[]和那些方法调用都是一些无谓的开销. Java中的String是一个