1、StringBuffer对象的初始化
1.StringBuffer 用在对多种数据类型的拼接,和若干次拼接,效率更高,内存更节省
2.如果可能,建议优先采用StringBuilder该类,因为在大多数实现中,它比 StringBuffer 要快。
3.StringBuilder的API与StringBuffer相同,StringBuilder非线程安全,效率高,StringBuffer线程安全,效率低
StringBuffer对象的初始化不像String类的初始化一样,Java提供的有特殊的语法,而通常情况下一般使用构造方法进行初始化。
例如:
StringBuffer s = new StringBuffer();
这样初始化出的StringBuffer对象是一个空的对象,就是我犯的错误。
如果需要创建带有内容的StringBuffer对象,则可以使用:
StringBuffer s = new StringBuffer(“abc”);
这样初始化出的StringBuffer对象的内容就是字符串”abc”。
需要注意的是,StringBuffer和String属于不同的类型,也不能直接进行强制类型转换,下面的代码都是错误的:StringBuffer s = “abc”;
赋值类型不匹配StringBuffer s = (StringBuffer)”abc”;
不存在继承关系,无法进行强转
StringBuffer对象和String对象之间的互转的代码如下:
String s = “abc”;
StringBuffer sb1 = new StringBuffer(“123”);
StringBuffer sb2 = new StringBuffer(s); //String转换为StringBuffer
String s1 = sb1.toString(); //StringBuffer转换为String
2、StringBuffer的常用方法
append方法 (追加)
public StringBuffer append(boolean b)
该方法的作用是追加内容到当前StringBuffer对象的末尾,类似于字符串的连接。调用该方法以后,StringBuffer对象的内容也发生改变,例如:
StringBuffer sb = new StringBuffer(“abc”);
sb.append(true);```
则对象sb的值将变成”abctrue”。
使用该方法进行字符串的连接,将比String更加节约内容,例如应用于数据库SQL语句的连接,例如:
StringBuffer sb = new StringBuffer();
String user = “test”;
String pwd = “123”;
sb.append(“select * from userInfo where username=“)
.append(user)
.append(“ and pwd=”)
.append(pwd);
这样对象sb的值就是字符串“select * from userInfo where username=test and pwd=123”。
####insert方法 (插入)
public StringBuffer insert(int offset, boolean b)
该方法的作用是在StringBuffer对象中插入内容,然后形成新的字符串。例如:
StringBuffer sb = new StringBuffer(“javaString”);
sb.insert(4,false);
该示例代码的作用是在对象sb的索引值4的位置插入false值,形成新的字符串,则执行以后对象sb的值是”javafalseString”。
####delete方法 (删除)
public StringBuffer delete(int start,int end)
该方法的作用是删除指定位置中间的字符。例如:
StringBuffer sb = new StringBuffer(“javaString”);
sb.delete(2,4);
该示例代码的作用是在对象sb的索引值2的位置删除值,形成新的字符串,则执行以后对象sb的值是”jaString”。
####replace方法 (修改)
public StringBuffer replace(int start,int end,String str)
使用给定 String 中的字符替换此序列的子字符串中的字符。例如:
StringBuffer sb = new StringBuffer(“javaString”);
sb.replace(2,3,"SB");
该示例代码的作用是在对象sb的索引值2的位置替换值,形成新的字符串,则执行以后对象sb的值是”jaSBaString”。
####StringBuffer 转换成String
方式一
String string = sb.toString();
方式二
String string1 = new String(sb);