Java StringBuffer类用法详解(附带实例)
Java 中的 StringBuffer 类与 String 类一样都是用来存储字符串的,区别在于 String 类创建的字符串不可变,内容一经定义便不可更改,每次更改 String 对象的值都需要开辟新的空间,而 StringBuffer 对象的空间开辟后内容是可以改变的,且容量会随着存放的字符增加而自动增加。
StringBuffer 类的常用构造方法如下表所示:
接下来,通过案例来演示 StringBuffer 对象的多种创建方式:
接下来,通过案例来演示 StringBuffer 类的上述方法的使用:
Java创建StringBuffer对象
创建一个新的 StringBuffer 对象,必须通过 new 的形式进行,不像 String 对象可以用 new 也可以直接用“=”赋值常量。StringBuffer 类的常用构造方法如下表所示:
方法 | 方法描述 |
---|---|
StringBuffer() | 创建一个没有初始值的字符串 |
StringBuffer(String str) | 创建一个带有初始值的字符串 |
StringBuffer(int capacity) | 创建一个定义了初始空间的空字符串 |
接下来,通过案例来演示 StringBuffer 对象的多种创建方式:
public class Demo { public static void main(String[] args) { StringBuffer str = new StringBuffer(); System.out.println("没有初始值的构造方法:" + str.length()); StringBuffer str2 = new StringBuffer("C语言中文网"); System.out.println("带有初始值的构造方法:" + str2.length()); StringBuffer str3 = new StringBuffer(10); System.out.println("初始容量为10,实际长度为:" + str3.length()); } }程序的运行结果如下:
没有初始值的构造方法:0
带有初始值的构造方法:6
初始容量为10,实际长度为:0
Java StringBuffer类常用方法
StringBuffer 类提供了多种方法,如查找方法、替换方法、拆分方法等,这些方法在使用上与 String 类所提供的方法差别不大。方法 | 功能描述 |
---|---|
int length() | 返回 StringBuffer 的长度 |
char charAt(int index) | 返回字符串中指定位置的字符 |
StringBuffer append(String str) | 追加字符 |
StringBuffer delete(int start,int end) | 删除指定区间内的字符 |
StringBuffer deleteCharAt(int index) | 删除指定位置的字符 |
StringBuffer replace(int start,int end,String str) | 将指定区间内的值替换为 str |
String substring(int start) | 截取字符串从指定位置开始到结尾 |
String substring(int start,int end) | 截取字符串从指定位置开始到指定位置结束 |
StringBuffer insert(int offset,String str) | 向指定位置插入 str |
int indexOf(String str) | 从头开始查找指定字符的位置 |
int indexOf(String str,int index) | 从指定位置开始查找指定字符的位置 |
StringBuffer reverse() | 进行反转 |
String toString() | 返回 StringBuffer 对应的 String |
接下来,通过案例来演示 StringBuffer 类的上述方法的使用:
public class Demo { public static void main(String[] args) { StringBuffer str = new StringBuffer("C语言中文网,"); System.out.println("创建的str对象:" + str); str.append("专注编程教育"); // 追加字符串 str.append(14); // 追加数字 str.append('年'); // 追加字符 System.out.println("追加后的结果:" + str); System.out.println("----------------------------"); str.insert(13, "已经"); System.out.println("insert插入后结果:" + str); System.out.println("----------------------------"); StringBuffer str2 = new StringBuffer("C语言中文网"); str2.reverse(); System.out.println("C语言中文网反转后结果:" + str2); System.out.println("-----------------------------"); StringBuffer stringBuffer = new StringBuffer("0123456789"); stringBuffer.delete(4, 8); System.out.println("delete(4,8):" + stringBuffer); stringBuffer = new StringBuffer("0123456789"); stringBuffer.delete(4, 10); System.out.println("delete(4,10):" + stringBuffer); } }程序的运行结果如下:
创建的str对象:C语言中文网,
追加后的结果:C语言中文网,专注编程教育14年
----------------------------
insert插入后结果:C语言中文网,专注编程教育已经14年
----------------------------
C语言中文网反转后结果:网文中言语C
-----------------------------
delete(4,8):012389
delete(4,10):0123