Java核心类——StringBuilder
StringBuilder
概念
StringBuilder 是一个可变的字符序列.
可变: 维护的字符数组的地址可以改变
构造方法
数组长度
capacity: 容量 维护的字符数组的容量
length: 长度 在字符数组中有效的字符的个数
案例
char[] c = new char[16];
c[0] = 'a';
c[1] = 'b';
//length == 2;
//capacity == 16;
语法
public StringBuilder()
创建一个生成器,初始容量为 16 个字符
public StringBuilder(int capacity)
创建一个生成器,初始容量为 capacity 大小
public StringBuilder(String str)
构造一个字符串生成器,并初始化为指定的字符串内容。该字符串生成器的初始容量为 16 加上字符串参数的长度。
案例:
package com.study.day14;
public class Demo7 {
public static void main(String[] args) {
//构造方法一
StringBuilder stringBuilder = new StringBuilder();//容量 16
System.out.println(stringBuilder.capacity());
System.out.println(stringBuilder.length());
//构造方法二
StringBuilder stringBuilder = new StringBuilder(10);
System.out.println(stringBuilder.capacity());
System.out.println(stringBuilder.length());
//构造方法三
StringBuilder stringBuilder = new StringBuilder("老王");//
System.out.println(stringBuilder.capacity());//18
System.out.println(stringBuilder.length());//2
}
}
成员方法
末尾添加
public StringBuilder append(Object obj)
可以将任意数据类型,转成字符,添加到生成器中
中间插入
public StringBuilder insert(int index,Object obj)
可以将任意数据类型,添加到指定的位置
(1)index 的范围是 0~ 当前缓冲区的大小;
(2)插入数据之后,数据本身的索引就是参数中指定的 index
删除
public StringBuilder deleteCharAt(int index)
删除指定索引的字符
public StringBuilder delete(int start,int end)
删除指定范围的字符,被删除的部分包含头不包含尾
替换
public StringBuilder replace(int start,int end,String str)
将字符串缓冲区中的从 start 开始到 end-1 这部分内容,替换成 str
反转
public StringBuilder reverse()
将原有字符序列进行反转
将StringBuilder对象转换成字符串
public String toString()
常见操作
字符串的拼接
append()
字符串的反转
resverse()
案例:
package com.study.day14;
public class Demo7 {
public static void main(String[] args) {
StringBuilder stringBuilder = new StringBuilder();
//字符串拼接
for (char i = 'a'; i <= 'z' ; i++) {
stringBuilder.append(i);
}
System.out.println(stringBuilder);
StringBuilder stringBuilder = new StringBuilder("长风破浪会有时");
StringBuilder stringBuilder1 = new StringBuilder("直挂云帆济沧海");
String s = stringBuilder.toString() + stringBuilder1.toString();
System.out.println(s);
//插入字符
stringBuilder.insert(2,"刘能");
System.out.println(stringBuilder);
//删除指定索引字符
stringBuilder.deleteCharAt(2);
stringBuilder.deleteCharAt(2);
System.out.println(stringBuilder);
//删除指定范围的字符,被删除的部分包含头不包含尾
stringBuilder.delete(2,4);
System.out.println(stringBuilder);
//将字符串缓冲区中的从 start 开始到 end-1 这部分内容,替换成 str
stringBuilder.replace(2,4,"替换成功");
System.out.println(stringBuilder);
//将原有字符序列进行反转
stringBuilder.reverse();
System.out.println(stringBuilder);
}
}