Java StringBuffer与StringBuilder类
开发工具与关键技术: My Eclipse 10, jdk¬7 Update 80
作者:邓高发
撰写时间:2019年4月23日
当对字符串进行修改的时候,需要使用StringBuffer和StringBuilder类。与String类不同的是StringBuffer与StrBuilder类的对象能够被重写或拼接许多次,并且不会像String类的对象一样产生新的对象。 StrBuilder在Java1.5中被提出,StrBuilder与StringBuffer之间最大的不同点就是
StrBuilder是线程不安全的,运行效率上StrBuilder > StringBuffer > String,比较常用的为StrBuilder的类,在考虑安全优先的情况下则必须使用StringBuffer。
常用的构造函数有:
- StrBuilder ():构造一个空的StrBuilder的字符序列,初始容量为16个字符
- StrBuilder (String str):构造一个含有str字符串的字符序列。
示例代码如下:
// StringBuilder(),通过to String()方法将StringBuilder型转为String型再进行判断是否为空
StringBuilder builder1 = new StringBuilder();
System.out.println(builder1.toString().equals(""));
输出结果为:true。
//StringBuilder(String str)
StringBuilder builder2 = new StringBuilder(“World”);
System.out.println(builder2.toString().equals(“World”));
输出结果也为: true。
StringBuilder类大部分方法与String类的方法一致,与String不同且常用的方法有如下几个:
append(String str):向此字符序列的末尾处追加指定的字符串,如果追加的类型不为String类型,则将该值转换为String类型的表示形式追加。
reverse():将此字符序列以反转的形式来取代此字符序列。
insert(int start String str):向此字符序列的指定位置追加字符串,如果追加的类型不为String类型,则将该值转换为String类型的表示形式追加。
delete(int start int end):根据其指定的索引位置移除此字符序列的子字符序列。
capacity():获取此字符序列当前的容量。
示例代码如下:
//append
boolean a = true;
builder1.append(“Hello:”);
builder1.append(a);
System.out.println(builder1);
//reverse
System.out.println(“builder1反转后:”+builder1.reverse());
builder2.insert(0," Hello,");
builder2.insert(0,a);
System.out.println(builder2);
//delete
builder2.delete(0, 4);
System.out.println(builder2);
//capacity
System.out.println(“builder2当前容量:”+builder2.capacity());
代码效果如下图: