概述
线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。
每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量自动增大。
构造方法
StringBuffer()
: 构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。StringBuffer(int capacity)
:构造一个不带字符,但具有指定初始容量的字符串缓冲区。StringBuffer(String str)
:构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容,字符串缓冲区的初始容量为 16 加上字符串 str 的长度。
常用方法
StringBuffer append(String str)
:将指定的字符串追加到此字符序列。(有多个不同数据类型的重载形式)StringBuffer buffer = new StringBuffer("hello,"); // 创建一个 StringBuffer 对象 String str = "World!"; buffer.append(str); // 向 StringBuffer 对象追加 str 字符串 System.out.println(buffer.substring(0)); // 输出:Hello,World!
void setCharAt(int index, char ch)
: 将给定索引处的字符设置为 ch。StringBuffer sb = new StringBuffer("QAQ"); sb.setCharAt(0,'q'); System.out.println(sb); // 输出:qAQ sb.setCharAt(2,'q'); System.out.println(sb); // 输出:qAq
删除字符串
StringBuffer delete(int start, int end)
: 移除此序列的子字符串中的字符。删除范围:[start,end)。StringBuffer sb = new StringBuffer("hello_java"); sb.delete(6,9); System.out.println(sb); // 输出:hello_ sb.delete(1,2); System.out.println(sb); // 输出:hlo_
StringBuffer deleteCharAt(int index)
: 移除此序列指定位置的 char。StringBuffer sb = new StringBuffer("学无_止境"); sb.deleteCharAt(2); System.out.println(sb); // 输出:学无止境
StringBuffer reverse()
: 将此字符序列用其反转形式取代。StringBuffer sb = new StringBuffer("abcde"); sb.reverse(); System.out.println(sb); //输出:edcba
StringBuffer insert(int offset, String str)
: 将字符串插入此字符序列指定位置中。(有多个不同数据类型的重载形式)StringBuffer sb = new StringBuffer("acd"); sb.insert(1,"b"); System.out.println(sb); //输出:abcd
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1401362462@qq.com