StringBuilder表面看起来是用来拼接、处理字符串的一个工具类,但它的内部实现其实是处理字符序列。StringBuilder比String具有使用更加方便、运行效率更高的特点。StringBuffer是在StringBuilder的基础上多了线程安全(同步访问)。
拼接、反序、替换、删减、插入
append(),用于拼接,可接受字符串以及所有的基本数据类型的数据。
StringBuilder sb = new StringBuilder();
sb.append(8);
sb.append("乘以");
sb.append(6.6);
sb.append('=');
sb.append(true);
System.out.println(sb); // 输出结果为:8乘以6.6=true
reverse(),用于反转顺序。
StringBuilder sb = new StringBuilder("猪头大一来过上海");
sb.reverse();
System.out.println(sb); // 输出结果为:海上过来一大头猪
replace(int start, int end, String str),用于根据索引把某一段替换成另一段。
StringBuilder sb = new StringBuilder("春眠不觉晓,处处闻啼鸟。");
sb.replace(8, 11, "蚊子咬");
System.out.println(sb); // 输出结果为:春眠不觉晓,处处蚊子咬。
delete(int start, int end),用于根据索引去除某一段。
StringBuilder sb = new StringBuilder("爸爸的脸蛋有很多褶皱");
sb.delete(3, 4);
System.out.println(sb); // 输出结果为:爸爸的蛋有很多褶皱
insert(int offset, XXX xxx) ,用于在索引位置插入一段,可接受字符串、字符数组以及所有的基本数据类型的数据。
StringBuilder sb = new StringBuilder("《摔跤吧!爸爸》");
sb.insert(3, "了");
System.out.println(sb); // 输出结果为:《摔跤了吧!爸爸》
容量和长度
new StringBuilder(int capacity),StringBuilder无参数构造器设定的初始容量是15,可用有参构造器来自定义初始容量。
当字符个数达到了当前容量,则容量会自动提升。
int capacity(),用于返回当前字符序列的容量。
int length(),用于返回当前已实际存储的字符的个数。
StringBuilder sb = new StringBuilder(6);
sb.append("执子之手,方知子丑。");
System.out.println(sb.capacity()); // 转出结果为:26
System.out.println(sb.length()); // 转出结果为:10
返回匹配对应的索引
int indexOf(String str),输出第一个匹配的索引。
int indexOf(String str, int fromIndex),从指定的索引处开始,输出第一个匹配的索引。
int lastIndexOf(String str),输出最后一个匹配的索引。
int lastIndexOf(String str, int fromIndex),从指定的索引处开始,输出最后一个匹配的索引。
返回其中一段字符串
String substring(int start),根据索引,以字符串形式输出尾部段。
String substring(int start, int end),根据索引,以字符串形式输出内部段。
String toString(),以字符串形式输出整段。
想知道更多StringBuilder的用法,请浏览Java StringBuffer 和 StringBuilder 类 | 菜鸟教程



