StringBuilder类的构造方法有很多,主要是参数上的区别,常用的方法有:
1.StringBuilder append(String str)方法
该方法将参数str指定的字符串追加到字符串生成器中,语法格式为:
builder.append(String str);
使用StringBuilder append(String str)方法将字符串追加到字符串生成器中的代码如下:
string s = "well";
StringBuilder builder = new StringBuilder();
bulider.append(s);
system.out.println("追加后builder的值是:"+builder);
输出结果是追加后builder的值是good.
2.StringBuilder append(StringBuffer sb)方法
该方法将参数sb指定的字符串缓存StringBuffer的值追加到字符串生成器中,语法格式为:
builder.append(StringBuffrer sb);
使用该方法将字符串缓存中的值追加到字符串生成器中,代码如下:
StringBuffer buffer = new StringBuffer("sunday");
StringBuffer builder = new StringBuilder();
builder.append(buffer);
System.out.println("追加后builder的值是:"+builder);
3.StringBuilder insert(int offset , String str)方法
该方法将参数指定的字符串str添加到offset指定的位置,语法格式如下:
builder.inset(int offest , String str);
4.StringBuilder delete(int start,String end)方法
该方法移除字符串生成器中的子字符串中,该子字符串从指定的start处开始,到指定的end处结束,语法格式:
builder.delete(int start,String end);
5.String toString()方法
该方法将字符生成器中的值转换为字符串
如:
StringBuilder builder = new StringBuilder("HelloWord");
String s = builder.tostring;
System.out.println("s="+s);
System.out.println("builder="+builder);
将字符串生成器中的值转换成了字符串类型,并且知道转换之后字符串生成器中的值不变。
StringBuffer类
该类能创建可修改的字符串序列,也是由append()追加一个字符串序列。
构造方法有:
StringBuffer(),StringBuffer(int size)和StringBuffer(String s)。
StringBuffer()创建一个StringBuffer对象,分配给该对象的实体的初始容量可以容纳16个字符,该对象的实体存放的字符序列的长度大于16时,实体的初始容量自动增加,以便存放所增加的字符。StringBuffer对象可以通过方法length()获取实体中存放的字符序列的长度,通过方法capacity()获取当前实体的实际容量。
StringBuffer(int size)创建一个StringBuffer对象,可以指定分配给该对象的实体的初始容量为参数size指定的个数。
StringBuffer(String s)创建一个StringBuffer对象,可以指定分配给该对象的实体的初始容量为参数字符串s的长度额外再加16个字符。
常用方法有:
1.append() ——追加字符串
2.char charAt(int n) ——得到参数n指定的位置上的单个字符。
3.void setCharAt(int n ,char ch)——将当前Stringbuffer对象实体中的字符串位置n处的字符用参数ch指定的字符替换。
4.StringBuffer inset(int index,String str)——将一个字符串插入另一个字符串中,并返回当前对象的引用。
5.public StringBuffer reverse()——将对象实体中的字符翻转,并返回当前对象的引用。
6.StringBuffer delete(int startIndex,int endIndex)——从当前StringBuffer对象实体中的字符串中删除一个子字符串,并返回当前对象的引用。
7.StringBuffer replace(int startIndex,int endIndex, String str)——将当前StringBuffer对象实体中的字符串的一个子字符串用参数str指定的字符串替换。
StringBuffer与Stringbuilder区别:
StringBuffer是线程安全的,所以当它作为成员变量时不存在线程安全问题。
StringBuilder是线程不安全的,在作为成员变量时有可能出现线程不安全问题。如果在方法内部使用一个这样的变量,用StringBuilder效率会更高,因为首先StringBuilder没有加锁,其次方法内部不存在线程安全问题。
选择方法:
如果经常修改,且是单线程,使用StringBuilder;(实际上,StringBuilder是我们最常用的,因为我们经常需要修改字符串,并且我们的程序多是单线程的)
如果经常修改,且是多线程,使用StringBuffer