StringBuffer的常见方法及小技巧分享

本文详细介绍了StringBuffer的概念及其在Java中的应用。重点讲述了StringBuffer作为字符串缓冲区如何存储数据,并提供了其核心方法的概述,包括增删改查等操作。

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

前注:本文参考传智博客毕向东老师的java教学视屏加上本菜鸟的一些总结理解,错漏之处烦请各位批评改正,望共同进步。

我先介绍一下StringBuffer。StringBuffer是一字符串缓冲区对象,和数组相似是个容器(它的底层就是个可变长度的数组)。

一 .它和数组在存储数据方面的区别是:StringBuffer可以把基本数据类型通过append(添加)方法以字符串连接在一起。

而数组仅仅存储的一种数据是它new时声明的。

简单说就是StringBuffer所能存储的数据更多更灵活。

二. StringBuffer的一些常用方法。(注:一下方法格式简写为 返回值类型 方法名(方法参数),data代表基本数据类型)

  StringBuffer作为以个从jdk1.0版本就有的容器,它的常用方法便是增删改查。

1.增加

增添:StringBuffer append( data)(注:方法参数为基本数据类型)

插入:StringBuffer insert(int intdex , data)

2.删除

StringBuffer  delete(int start ,int  end)(注:包含头不包含尾)

StringBuffer deleteCharAt(int index)(注:删除指定位置的元素)

3.查找

char charAt(int index)

int indexOf(String str)

int lastIndexOf(String str)

4.修改

StringBuffer  replace(int start , int end ,String str)

void setCharAt(int index , char cha) (注意:返回值是void)

三.小技巧分享

清空缓存区的方法(清空不是删除,清空后该缓冲区还在)。

1.

StringBuffer sb = new StringBuffer();

sb.setLength(0);

2.

StringBuffer sb = new StringBuffer();

sb.delete(0 , sb.length());

3.(不建议使用)

StringBuffer sb = new StringBuffer();

sb = new StringBuffer();

4.

StringBuffer是同步的,安全的,但是效率低。

四.

end:

本人java菜鸟,默默努力中。

下篇博客会更努力写,谢谢大家。


### StringBuffer 常用方法及其示例 #### 方法一:`append()` 此方法用于将指定的数据追加到 `StringBuffer` 的末尾。数据可以是字符串、字符、布尔值、整数等多种类型[^2]。 ```java StringBuffer sb = new StringBuffer("Hello"); sb.append(" World"); System.out.println(sb.toString()); // 输出: Hello World ``` --- #### 方法二:`insert(int offset, String str)` 此方法用于在指定位置插入子字符串或其他类型的值[^3]。 ```java StringBuffer sb = new StringBuffer("World"); sb.insert(0, "Hello "); System.out.println(sb.toString()); // 输出: Hello World ``` --- #### 方法三:`delete(int start, int end)` 此方法用于删除从起始索引到结束索引之间的字符[^3]。 ```java StringBuffer sb = new StringBuffer("Hello World"); sb.delete(5, 7); System.out.println(sb.toString()); // 输出: HelloWorld ``` --- #### 方法四:`replace(int start, int end, String str)` 此方法用于替换从起始索引到结束索引之间的字符为新字符串。 ```java StringBuffer sb = new StringBuffer("Hello World"); sb.replace(6, 11, "Java"); System.out.println(sb.toString()); // 输出: Hello Java ``` --- #### 方法五:`reverse()` 此方法用于将 `StringBuffer` 对象中的内容反转并返回一个新的字符串对象[^1]。 ```java StringBuffer sb = new StringBuffer("abc"); sb.reverse(); System.out.println(sb.toString()); // 输出: cba ``` --- #### 方法六:`charAt(int index)` 此方法用于获取指定索引处的单个字符[^3]。 ```java StringBuffer sb = new StringBuffer("Hello World"); char ch = sb.charAt(0); System.out.println(ch); // 输出: H ``` --- #### 方法七:`getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)` 此方法用于将字符从此序列复制到目标字符数组。 ```java StringBuffer sb = new StringBuffer("江畔何人初见月?江月何年初照人?"); char[] ch = new char[10]; sb.getChars(0, 8, ch, 0); System.out.println(new String(ch)); // 输出: 江畔何人初见月? ``` --- #### 方法八:`indexOf(String subStr)` 和 `lastIndexOf(String subStr)` 这两个方法分别用于查找子字符串首次出现的位置和最后一次出现的位置[^3]。 ```java StringBuffer sb = new StringBuffer("Hello World Hello"); int firstIndex = sb.indexOf("Hello"); // 首次出现的位置 int lastIndex = sb.lastIndexOf("Hello"); // 最后一次出现的位置 System.out.println(firstIndex); // 输出: 0 System.out.println(lastIndex); // 输出: 12 ``` --- #### 方法九:`length()` 和 `capacity()` `length()` 返回当前缓冲区中实际存储的字符数量,而 `capacity()` 返回底层实现所分配的最大容量。 ```java StringBuffer sb = new StringBuffer("Hello"); System.out.println(sb.length()); // 输出: 5 System.out.println(sb.capacity()); // 默认初始容量为16,所以输出至少为16 ``` --- #### 方法十:`toString()` 此方法用于将 `StringBuffer` 转换为不可变的 `String` 对象。 ```java StringBuffer sb = new StringBuffer("Hello"); String result = sb.toString(); System.out.println(result); // 输出: Hello ``` --- ### 性能优势说明 由于 `StringBuffer` 是可变的对象,在需要频繁修改字符串内容的情况下,其性能优于 `String` 类型,因为每次修改都不会创建新的对象[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值