【Java】StringBuffer类的方法介绍

本文详细介绍了StringBuffer类的基本概念、构造方法及常用API操作,包括字符串的构造、长度获取、容量设置、字符插入与删除等功能,并通过示例展示了如何使用StringBuffer进行字符串处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以StringBuffer在进行字符串处理时,不生成新的对象,每次修改都会改变对象自身,在内存使用上要优于String类。

StringBufferString属于不同的类型,不能直接进行强制类型转换
/**错误示例:
StringBuffer s = “abc”;               //  赋值类型不匹配
StringBuffer s = (StringBuffer)”abc”;    // 不存在继承关系,无法进行强转
*/
//   StringBuffer对象和String对象之间的互转的代码如下:
String s = “abc”;
StringBuffer sb1 = new StringBuffer(“123”);
StringBuffer sb2 = new StringBuffer(s);   //String转换为StringBuffer
String s1 = sb1.toString();              //StringBuffer转换为String

一、构造字符串

StringBuffer( )     //  默认构造函数(无参数)预留了16个字符的空间

StringBuffer(int size)    //  设置缓冲区大小

StringBuffer(String str)   //  设置StringBuffer对象的初始内容,同时不进行再分配地多预留了16个字符的空间

StringBuffer sb = new StringBuffer("Hello");
System.out.println("length = " + sb.length());    // 输出 5
System.out.println("capacity = " + sb.capacity());   // 输出21 ,因为预留了16个字符的空间

二、方法

1.int length( )       //   得到当前StringBuffer的长度

2.int capacity( )      //  得到总的分配容量 

3.void ensureCapacity(int capacity)  

4.void setLength(int len)   //  StringBuffer对象内设置缓冲区的大小

5.char charAt(int where)   //  在构造StringBuffer之后为某些字符预分配空间

6.void setCharAt(int where, char ch)   // 将下标为where 的字符修改为 ch 

7.void getChars(int sourceStart, int sourceEnd, char target[ ],int targetStart)

8.StringBuffer append(String str)     //   在末尾增加字符串

9.StringBuffer append(int num)

10.StringBuffer append(Object obj)

11.StringBuffer insert(int index, String str)     //   在 字符串下标index 处插入字符串str

12.StringBuffer insert(int index, char ch)

13.StringBuffer insert(int index, Object obj)

14.StringBuffer reverse( )     //  返回被调用对象的翻转对象

15.StringBuffer delete(int startIndex, int endIndex)     //  删除从 startIndex 到 endIndex-1 的字符串

16.StringBuffer deleteCharAt(int loc)   //  删除指定位置 loc 的字符

17.StringBuffer replace(int startIndex, int endIndex, String str)   //  替换

18.String substring(int startIndex)     //  同String 返回从startindex 至末尾的字符串

19.String substring(int startIndex, int endIndex)    //   返回从 startIndex 到 endIndex-1 的字符串

范例:

	public static void main(String[] args) {
		StringBuffer sb =new StringBuffer("Hello");
		System.out.println("length = " + sb.length());    // 输出 5
		System.out.println("capacity = " + sb.capacity());   // 输出21 ,因为预留了16个字符的空间
		
		StringBuffer sb1 =new StringBuffer();     // 初始容量为16
		sb1.append("Good morning, World!");      // 20个字符,超出范围,追加16个字符的容量
		System.out.println("capacity = " + sb1.capacity());   // 输出36
		sb1.insert(13, "Big");   // 在字符下标13处插入 Big
		System.out.println(sb1);   // 输出Good morning,Big World!
		sb1.substring(17);
		System.out.println(sb1);   //仍输出Good morning,Big World!  substring()方法返回 string类的对象,不是StringBuffer
		String s=sb1.substring(17);
		System.out.println(s);     // 输出World!
		sb1.delete(0, 22);
		System.out.println(sb1);    // 输出!
		sb1.append("abcd").reverse();   
		System.out.println(sb1);         // 输出 dcba!
	}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值