Java中,除了通过string类创建和处理字符串之外,也可以使用StringBuffer处理字符串,更加高效。
StringBuffer类是可变字符串类,创建StringBuffer对象可以随意修改字符内容。每一个StringBuffer对象都能够存储指定容量的字符串,若其长度超过了StringBuffer 的容量,则会自动扩大。
StringBuffer
- 一、创建StringBuffer 对象
- 二、追加字符串
- 三、替换字符
- 四、反转字符串
- 五、删除字符串
- 1、delete方法
- 2、deleteCharAt方法
一、创建StringBuffer 对象
StringBuffer 提供了三个构造方法创建一个字符串对象:
- StringBuffer 构造了一个空的字符串缓冲区,初始化为16个字符的容量。
- StringBuffer (int length)创建了一个空的字符缓冲区,初始化为length容量。
- StringBuffer (string str)创建了一个字符串缓冲区,内容初始化为指定的字符串内容str,字符串缓冲区初始容量为16加上字符串str的长度。
使用构造函数创建对象实例:
// 定义一个空的字符串缓冲区,含有16个字符的容量
StringBuffer str1 = new StringBuffer();
// 定义一个含有10个字符容量的字符串缓冲区
StringBuffer str2 = new StringBuffer(10);
// 定义一个含有(16+4)的字符串缓冲区,"CSDN"为4个字符
StringBuffer str3 = new StringBuffer("CSDN");
/*
*输出字符串的容量大小
*capacity()方法返回字符串的容量大小
*/
System.out.println(str1.capacity()); // 输出 16
System.out.println(str2.capacity()); // 输出 10
System.out.println(str3.capacity());
上述代码声明了StringBuffer 对象,分别初始化,并实现了查看具体容量的操作。
二、追加字符串
StringBuffer 的append方法用于向原有的StringBuffer 对象中增加字符串。该方法作用是追加内容到当前的StringBuffer对象中,调用这个方法之后,StringBuffer的对象内容也发生了变化:
StringBuffer buffer = new StringBuffer("hello,"); // 创建一个 StringBuffer 对象
String str = "World!";
buffer.append(str); // 向 StringBuffer 对象追加 str 字符串
System.out.println(buffer.substring(0)); // 输出:Hello,World!
下面给出具体demo实例:
public class Testl9 {
public static void main(String[] args) {
StringBuffer sys = new StringBuffer("校内课程管理");
System.out.println("欢迎进入《"+sys+"》系统");
// 声明课程名称字符串
StringBuffer courseName = new StringBuffer();
System.out.println("请录入本期的五门必修课名称:");
Scanner input = new Scanner(System.in);
// 循环接收控制台输入的字符串
String name = "";
for (int i = 0;i < 5;i++) {
name = input.next();
courseName.append(name+"\t");
if(i == 4) {
System.out.println("录入完毕!");
}
}
System.out.println("本学期的必修课程有:\n"+courseName);
}
该程序中,首先声明了一个空的StringBuffer对象,声明初始化courseName变量,存储用户从控制台输入的课程名称,接着使用for循环循环接受用户输入数据。利用append方法对用户输入的字符串进行追加。
三、替换字符
StringBuffer 类对象的setCharAt方法用于在字符串指定索引位置替换一个字符。该方法作用就是修改对象中索引值为index的字符为新的字符ch,如下所示:
StringBuffer sb = new StringBuffer("hello");
sb.setCharAt(1,'E');
System.out.println(sb); // 输出:hEllo
sb.setCharAt(0,'H');
System.out.println(sb); // 输出:HEllo
sb.setCharAt(2,'p');
System.out.println(sb); // 输出:HEplo
四、反转字符串
StringBuffer 类中的 reverse() 方法用于将字符串序列用其反转的形式取代,该方法主要作用就是利用StringBuffer的reverse方法对字符串反转:
StringBuffer sb = new StringBuffer("java");
sb.reverse();
System.out.println(sb); // 输出:avaj
五、删除字符串
1、delete方法
delete方法用于移除序列中字符串的字符。start标识要删除字符的起始索引数值,包括索引数值对应的字符,end标识要删除字符串的结束索引数值,不包含索引值对应的字符。该方法作用就是删除指定区域以内的字符:
StringBuffer sb = new StringBuffer("hello jack");
sb.delete(2,5);
System.out.println(sb); // 输出:he jack
sb.delete(2,5);
System.out.println(sb); // 输出:heck
2、deleteCharAt方法
deleteCharAt() 方法用于移除序列中指定位置的字符,该方法主要是用于删除指定位置的字符,剩余内容形成一个新的字符串。
StringBuffer sb = new StringBuffer("She");
sb.deleteCharAt(2);
System.out.println(sb); // 输出:Sh