- 相同点:StringBuilder和StringBuffer都是可变的字符串
- 不同点:
①String的字符串不可变
②StringBuilder的方法没有使用synchronized关键字,所以它的方法线程不安全,但性能好
③StringBuffer使用了synchronized关键字,所以线程安全,但性能差
它的常用的方法:
使用方法前先要进行实例化:
StringBuilder sb = new StringBuilder();
.append():在当前字符串尾部追加字符串(不会创建新的临时对象)
sb.append("巴山楚水凄凉地,responsible");
.replace(start,end,str):将字符串从start开始end结束(不包括end)替换为str
StringBuilder sb = new StringBuilder("祭司神殿征战弓箭");
sb.replace(0, 2, "大祭司");
.delete(start,end):将字符串从start开始end结束(不包括end)进行删除
StringBuilder sb = new StringBuilder("巴山楚水凄凉地,responsible");
sb.delete(10, 11);
.deleteCharAt(int index):指定下标进行删除
StringBuilder sb = new StringBuilder("巴山楚水凄凉地,responsible");
sb.deleteCharAt(11);
.insert(intt offset,???):在offset下标处可以插入各种类型的值
StringBuilder sb = new StringBuilder("abcd");
sb.insert(2, 123);
.reverse():对字符串进行逆序反转
StringBuilder sb = new StringBuilder("甲乙丙丁戊己庚辛壬癸");
sb.reverse();
注意:StringBuilder是一个可变的对象,可以预分配缓存区