可变的String类之StringBuffer

本文介绍了Java中的StringBuffer类,包括其创建方式、与String类的区别,以及如何使用StringBuffer的常见方法进行字符串操作。

我们在上一篇文章Java基础【02】之字符串String中已经说过了String类是不可变的,但是在程序设计中,很多情况下需要字符串不断的变化。此时还继续使用String类,那么就会存在内存消耗大和效率低的问题,这在程序设计中我们应该尽可能的避免。为此Java为我们提供了另一个标准类StringBuffer类,这个对象时可以直接被修改的!


StringBuffer对象的创建没有String类那么复杂,有以下2种:

格式1:
  StringBuffer sbf = null;
  sbf = new StringBuffer();

格式2:
  StringBuffer sbf = new StringBuffer("字符串内容");

以上两种创建方式是等效的,创建StringBuffer对象不能像创建String对象啊那样直接赋值,这两种方式都包含了类名StringBuffer,new关键字以及对象名和字符串的初始值


以下示例创建一个StringBuffer对象:

public calss StringBufferDemo{
   public static void main(String[] args){
     StringBuffer sbf1 = null;    //声明StringBuffer变量sbf1
     sbf1 = new StringBuffer("apple");  //实例化StringBuffer变量sbf1
     
     StringBuffer sbf2 = new StringBuffer();  //创建StringBuffer空对象sbf2
     StringBuffer sbf3 = new StringBuffer("orange");    //创建StringBuffer对象sbf3
     
     StringBuffer sbf4 = sbf3;    //将sbf3赋予sbf4
 }
}


StringBuffer的常用方法有很多都是相同或者类似的

StringBuffer append(String str)

向StringBuffer中追加内容,这个方法可以重载                                       

int capacity()返回当前容量
StringBuffer delete(int start,int end)移除指定位置的字符串
StringBuffer deleteCharAt(int index)移除指定位置的字符
StringBuffer insert(int offset,String str)将内容插入到字符串的任意位置
StringBuffer reverse字符串反转
void setCharAt(int index,char ch)指定位置的字符替换
String toString()返回此序列中数据的字符串表示形式

StringBuffer中的append方法可以追加任意的数据类型,在字符串后面追

StringBuffer的默认初始容量的字符串缓冲区大小为16个字符,但是不同的StringBuffer对象拥有不同的容量。

比如StringBuffer sbf = new StringBuffer(“apple”);的容量大小为默认容量+字符串的长



值得我们注意的是StringBuffer类没有重写Object类的equals()方法,所以StringBuffer类是不能使用equals()比较StringBuffer的值,如果需要,我们可以使用toString()方法将StringBuffer的内容转换为String字符串,然后再使用equals()方法比较!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值