目录
StringBuffer
StringBuffer是字符串缓冲区。是一个容器。
特点:
- 长度是可变化的。
- 可以直接操作多个数据类型。
- 最终会通过toString()方法变成字符串。
可以进行字符串的CURD操作。
C:create(增) U:update(改) R:read(查) D:delete(删)
存储
StringBuffer append():将指定数据作为参数添加到已有数据结尾处。
StringBuffer insert(index,数据):可以将数据插入到指定index位置。
删除
StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。
StringBuffer deleteCharAt(index):删除指定位置的字符。
获取
char charAt(int index):获取字符串指定index位置上的字符。
int indexOf(String str):查找str在字符串中出现的第一次位置角标值,如果没有找到返回-1。
int lastIndexOf(String str): 查找str在字符串反向顺序中出现的第一次位置角标值,如果没有找到返回-1。
int length():返回字符串的长度。
String substring(int start,int end):截取字符串的子串,从start开始到end,包含start,不包含end。
修改
StringBuffer replace(int start, int end, String str):原字符串中从start到end-1位置上将由str字符替换。
void setCharAt(int index,char ch):原字符串中指定index位置,将由字符ch替换。
反转
StringBuffer reverse():将原字符串由其反转形式取代。
将缓冲区中指定数据存储到指定字符数组中
Void getChars(int srcBegin,int srcEnd,char[] dst,int dstBegin):将字符从字符串复制到目标字符数组 dst。要复制的第一个字符在字符串索引 srcBegin 处;要复制的最后一个字符在字符串索引 srcEnd-1 处。要复制的字符总数为 srcEnd-srcBegin。要复制到 dst 子数组的字符从索引 dstBegin 处开始,结束于以下索引:dstbegin + (srcEnd-srcBegin) – 1。
StringBuilder
StringBuffer 与 StringBuilder 中的方法和功能完全是等价的,相同的。
StringBuffer是线程同步。即多线程安全,每次都需要判断锁,效率低。
StringBuilder是线程不同步。在单线程程序下,StringBuilder效率更快,因为它不需要加锁,不具备多线程安全。
所以为了提高开发效率,建议使用StringBuilder。
扩展:
Java升级JDK三个因素:
- 提高效率。
- 简化书写。
- 提高安全性。