理论教育 Java程序设计教程:StringBuffer类使用详解

Java程序设计教程:StringBuffer类使用详解

时间:2023-11-21 理论教育 版权反馈
【摘要】:在实际应用中,经常会需要对字符串进行动态修改,这时String类的功能就受到了限制,而StringBuffer类可以完成字符串的动态添加、插入和替换等操作。StringBuffer表示变长的和可写的字符序列。它先调用String类的valueOf方法得到相应的字符串表达式,随后这个字符串被插入到所调用的StringBuffer对象中。

Java程序设计教程:StringBuffer类使用详解

在实际应用中,经常会需要对字符串进行动态修改,这时String类的功能就受到了限制,而StringBuffer类可以完成字符串的动态添加、插入和替换等操作。StringBuffer表示变长的和可写的字符序列。StringBuffer类可以插入其中或追加其后的字符或子字符串,还可以针对这些添加操作自动地增加空间,同时它通常还有比实际需要更多的预留字符,从而允许增加空间。

1.SttingBuffer的构造方法

StringBuffer定义了以下4个构造方法:

•StringBuffer()。

•StringBuffer(int capacity)。

•StringBuffer(String str)。

•StringBuffer(CharSqquence seq)。

第1种形式的构造函数预留了16个字符的空间,该空间不需再分配;第2种形式的构造函数接收一个整数参数,用以设置缓冲区的大小;第3种形式的构造函数接收一个字符串参数,设置StringBuffer对象的初始内容,同时多预留了16个字符的空间;第4种形式的方法在实际编程中很少用到,当没有指定缓冲区的大小时,StringBuffer类会分配16个附加字符的空间,这是因为再分配在时间上代价很大,且频繁地再分配会产生内存碎片。

2.append()方法

对于向已经存在的StringBuffer对象追加任何类型的数据,StringBuffer类提供了相应的append()方法,如下所示:

StringBuffer(char c)

StringBuffer(char[]str)

StringBuffer(String str)

StringBuffer(double d)

……

以上的方法都可以向字符串缓冲区“追加”元素,这个“元素”参数可以是布尔型、字符数组、双精度数、浮点数、整型数、长整型数对象类型的字符串等。如果添加的字符超出了字符串缓冲区的长度,Java语言将自动进行扩充。例如下列代码段:

【例6.5】 写出程序的运行结果。

执行上述代码段,则输出结果为:

1+1=3 false

3.length()和capacity()方法

对于StringBuffer对象来说,有两个很重要的属性,分别是长度和容量。通过调用length()方法可以得到当前StringBuffer的长度,通过调用capacity()方法可以得到总的分配容量。它们的一般形式如下所示:

int length()

int capacity()

【例6.6】 写出程序的运行结果。

StringBuffer sb=new StringBuffer("Hello");

System.out.println("buffer="+sb);

System.out.println("length="+sb.length());(www.daowen.com)

System.out.println("capacity="+sb.capacity());

执行上述代码,则输出结果如下所示:

buffer=Hello

length=5

capacity=21

这个例子很好地说明了StringBuffer是如何为另外的处理预留额外的空间的。

4.insert()方法

insert()方法主要用来将一个字符串插入到另一个字符串中,和append方法一样,它也被重载而可以接收所有简单类型的值。它先调用String类的valueOf方法得到相应的字符串表达式,随后这个字符串被插入到所调用的StringBuffer对象中。insert方法有如下几种形式:

StringBuffer insert(int offset,boolean b)

StringBuffer insert(int offset,char c)

StringBuffer insert(int offset,char[]str)

StringBuffer insert(int index,char[]str,int offset,int len)

StringBuffer insert(int offset,double d)

StringBuffer insert(int offset,String str)

5.reverse()方法

可以使用reverse()方法将StringBuffer对象内的字符串进行翻转,它的一般形式如下:

StringBuffer reverse()

【例6.7】 写出程序的运行结果。

StringBuffer s=new StringBuffer("abcdef");

System.out.println(s);

s.reverse();

System.out.println(s);

代码执行后,输出结果为:

abcdef

fedcba

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈