StringBuilder是一个可变的字符序列,允许内容的更改,在类中提供了修改私有成员变量的方法,与String不同的是,不仅字符串内容可以更改,字符串的长度也可以变化
StringBuilder构造方法
- StringBuilder():空参构造,默认生成一个大小为16的空字符组
- StringBuilder(String str):使用指定的字符串初始化时,整个StringBuilder对象的长度为str.length() + 16
- StringBuilder(int capacity):通过参数指定数组的大小
- 获取容积的方法:capacity() 获取当前容器的大小
length():获取当前容器的字符的个数
/**
* StringBuilder构造方法演示
*/
public class StringBuilderConstruction {
public static void main(String[] args) {
// 空参构造
StringBuilder str1 = new StringBuilder();
System.out.println(str1.capacity());// 16// str1.length() = 0
// 传入字符串
String s = "你好";
System.out.println(s.length()); // 2
StringBuilder str2 = new StringBuilder(s);
System.out.println(str2.capacity()); // s.length() + 16 = 18
System.out.println(str2.length()); // 2
// 设定容量
StringBuilder str3 = new StringBuilder(4);
System.out.println(str3.capacity()); // 4
}
}
StringBuilder添加功能
append():向StringBuilder对象后面中添加任意类型数据
insert(int index, 任意类型):在指定的位置添加任意类型数据,注意index的取值分为为0—>缓冲区-1
/**
* append():在StringBuilder对象之后添加任意类型数据
* insert(int index, 任意类型数据) :在指定位置添加任意类型数据,index范围0-->缓冲区-1
*/
public class StringBuilderAppend_Insert {
public static void main(String[] args) {
StringBuilder str = new StringBuilder("12");
// append()
str.append(3);
str.append("四");
System.out.println(str); // 123四
// insert()
str.insert(1,"一"); // 1一23四
System.out.println(str);
}
}
StringBuilder删除功能
deleteCharAt(int index):指定删除元素的位置
delete(int start, int end):指定删除从start开始到end-1结束的范围
/**
* deleteCharAt(int index):指定删除一个元素
* delete(int start, int end):指定删除start到end-1范围内的元素
*/
public class StringBuilderDelete {
public static void main(String[] args) {
StringBuilder str = new StringBuilder("012345");
// deleteCharAt()
str.deleteCharAt(2);
System.out.println(str); // 01345
// delete()
str.delete(1,3);
System.out.println(str); // 045
}
}
StringBuilder修改功能
replace(int start, int end, String str):把start开始到end-1结尾的内容替换为str
reverse():将元数据反转
/**
* replace(int start, int end, String str):替换
* reserve():反转
*/
public class StringBuilderReplace_Reserve {
public static void main(String[] args) {
// replace(int start, int end, String str)
StringBuilder str = new StringBuilder("你好世界,你好java"); // 你好world,你好java
str.replace(2,4,"world");
System.out.println(str);
// reserve()
str.reverse();
System.out.println(str); // avaj好你,dlrow好你
}
}