hello,进来的小伙伴们,你们好呐!
系列专栏:【JavaSE】
本篇内容:StringBuffer和StringBuider的详解介绍,学会这大类,玩转String——OJ题!
作者简介:一名大二即将升大三的科班编程小白,我很平凡,学会努力!
一、相关用法
String和StringBuilder最大的区别在于String的内容无法修改,而StringBuilder的内容可
以修改。频繁修改字符串的情况考虑使用StringBuilder。
方法1.StringBuff append(Stringstr)
功能:在尾部追加,相当于String的+=,可以追加:boolean、char、char[]、
double、float、int、long、Object、String、StringBuff的变量。
public class Test1 {
public static void main(String[] args) {
StringBuilder s1 = new StringBuilder("hello");
s1.append("java");
System.out.println(s1);
}
}
方法2.void setCharAt(int index,char ch)。
功能:将index位置的字符设置为ch。
public class Test1 {
public static void main(String[] args) {
StringBuilder s1 = new StringBuilder("hello");
s1.append("java");
s1.setCharAt(0,'H');
System.out.println(s1);
}
}
方法3.StringBuff insert(intoffset, String str)
功能:在offset位置插入:八种基类类型 & String类型 & Object类型数据。
StringBuilder s1 = new StringBuilder("hello");
s1.append("java");
s1.insert(5,' ');
System.out.println(s1);
注意:我们这里在hellojava之间插入了一个空格。
方法4:StringBufferdeleteCharAt(int index)
功能:删除index位置字符。
StringBuilder s1 = new StringBuilder("hello");
s1.append("java");
s1.deleteCharAt(0);
System.out.println(s1);
方法5.StringBuffer delete(intstart, int end)
功能:删除[start, end)区间内的字符。(注意左闭右开)
StringBuilder s1 = new StringBuilder("hello");
s1.append("java");
s1.delete(0,5);
System.out.println(s1);
方法6.StringBuffer reverse()
功能:反转字符串。
StringBuilder s1 = new StringBuilder("hello");
s1.append("java");
s1.reverse();
System.out.println(s1);
注意:String和StringBuilder类不能直接转换。如果要想互相转换,可以采用如下原则:
String变为StringBuilder: 利用StringBuilder的构造方法或append()方法。
StringBuilder变为String: 调用toString()方法。
二、面试题
1. String、StringBuffer、StringBuilder的区别
String的内容不可修改,StringBuffer与StringBuilder的内容可以修改。
StringBuffer与StringBuilder大部分功能是相似的。
StringBuffer采用同步处理,属于线程安全操作;而StringBuilder未采用同步处理,属于线程不安全操作。