append()将指定内容追加到 StringBuffer 的末尾
需要注意的是,当append(null)的时候是将null作为字符串添加进去
StringBuffer sb = new StringBuffer("Hello");
sb.append(" World"); // sb = "Hello World"
String str=null;
sb.append(str);//这里将null作为字符串添加进去
StringBuffer sb = new StringBuffer(str)//报空指针异常的错误
insert():在指定位置插入内容
StringBuffer sb = new StringBuffer("Hello");
sb.insert(5, " World"); // sb = "Hello World"
delete():删除指定范围的字符
StringBuffer sb = new StringBuffer("Hello World");
sb.delete(5, 11); // sb = "Hello"
deleteCharAt():删除指定位置的字符
StringBuffer sb = new StringBuffer("Hello");
sb.deleteCharAt(1); // sb = "Hllo"
replace():替换指定范围的字符
StringBuffer sb = new StringBuffer("Hello World");
sb.replace(6, 11, "Java"); // sb = "Hello Java"
reverse():反转字符串的内容
StringBuffer sb = new StringBuffer("Hello");
sb.reverse(); // sb = "olleH"
length():返回当前字符串的长度
capacity():返回当前 StringBuffer 的容量
int len = sb.length(); // len = 5
int cap = sb.capacity(); // cap = 21 (初始容量为 16 + 字符串长度 5)
setLength():设置字符串的长度。如果新长度小于当前长度,则截断字符串;如果大于当前长度,则用空字符填充
StringBuffer sb = new StringBuffer("Hello");
sb.setLength(3); // sb = "Hel"
sb.setLength(10); // sb = "Hel " (填充空字符)
toString():将 StringBuffer 转换为 String 对象,toString() 方法只是创建了一个新的 String 对象,而不会影响原始的 StringBuffer 对象
这个新的 String 对象不会自动添加到字符串常量池中,除非显式调用 intern() 方法
字符串常量池只存储字符串字面量和通过 intern() 方法添加的字符串
toString() 方法的作用是将 StringBuffer 的内容转换为一个不可变的 String 对象。这个 String 对象是一个全新的对象,与原始的 StringBuffer 对象是独立的
String str = sb.toString(); // str = "Hello"