Java开发 之 StringBuffer和StringBuilder(1)
转 : http://www.jcourse.cn/read/234
2009-03-02 作者:
zhangtaolv
在我们日常开发中,经常会遇到对文本的操作,并且在一般的MIS系统中,文本操作尤为多,如用户名、文章内容、文章标题、合同内容等。在之前的教程中,我也给大家讲解了Java中最基本的字符串操作的类,String。在之前的教程中我也给大家讲了String是不可变的类,即在构造后其内容不能变化,因此对于内容频繁变动(如我们对文章进行编辑)来说String是不合适的。那么遇到这样的情况时,我们该如何处理呢?Java为我们提供了StringBuilder和StringBuffer。
首先讲讲它们的共同点吧!基本上我们在字符串经常发生改变的时候使用它们,然后使用它们来操作会比使用String类要快些。这两个类的区别是StringBuffer是线程安全的而StringBuilder是非线程安全的。
在大致讲解后,我们看看如何由已有的字符串对象来创建StringBuffer和将StringBuffer转换为String对象。
先给出StringBuffer类的构造方法的API,让我们看看有多少种方式来构造它。
构造方法摘要
StringBuffer()
构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
StringBuffer(CharSequence seq)
public java.lang.StringBuilder(CharSequence seq) 构造一个字符串缓冲区,它包含与指定的 CharSequence相同的字符。
StringBuffer(int capacity)
构造一个不带字符,但具有指定初始容量的字符串缓冲区。
StringBuffer(String str)
构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
可以看出,我们可以直接new一个,也可以在new的时候给出参数。这里的参数可以是一个字符串,可以是一个容量值,也可以是一个CharSequence。我们首先看看用已有的字符串来构造StringBuffer。下面是一个例子:
Java代码
public class MainClass {
public static void main(String[] arg) {
StringBuffer aString = new StringBuffer("ABC
相关文档:
<%
response.setContentType("application/vnd.ms-excel;charset=utf-8");
String reportname = (String)request.getAttribute("reportname");
String reportFileName=java.net.URLEncoder.encode(reportname, "UTF-8");
String filenamedispla ......
大家好,这里有IBM的三个长期需求:均是需要2年以上相关工作经验,其中Java以及Testing需要英语可以交流,C/Unix不需要语言。
Java 大连
描述:Java programming, knowledge in J2SE, SWT/JFace, XML. Eclipse programming, knowledge in eclipse architecture. Clear understanding of plugin development. Hands-on exp ......
Java学习拾遗2--由String str=”abc”引出的故事(综合了下边的一些指点已更新,感谢在下边留言交流的朋友,谢谢你们的指点!) 收藏 此文于2009-11-10被推荐到CSDN首页
如何被推荐?
话题是由如下的事情引出的:
public class StringTest {
public static void main(String[] args) {
......
JAVA中用于处理字符串常用的有三个类:java.lang.String、java.lang.StringBuffer、java.lang.StringBuilder,这三者的共同之处都是final类,不允许被继承,这主要是从性能和安全性上考虑的,因为这几个类都是经常被使用着的,且考虑到防止其中的参数被修改影响到其它的应用。StringBuffer与Strin ......