StringBuffer类和String类一样都是用来代表字符串,只是由于StringBuffer的内部实现方式和String不同,所以在处理字符串时不会生成新的对象,在内存使用上要由于String类。
String类在对字符串进行修改时会新建String类,对内存开销很大,所以如果经常对字符串进行修改、删除、插入等操作时更推荐用StringBuffer类。
对StringBuffer进行修改时都会改变原本的对象。
StringBuffer类和String类的很多的方法都是一样的且用法也相同。
1) StringBuffer类的初始化
2) StringBuffer类和String类相互转换
3) StringBuffer类的一些方法
一、StringBuffer类的初始化
用构造器构建对象
<span style="font-family:KaiTi_GB2312;font-size:14px;">StringBuffer strBuf1 = new StringBuffer();
StringBuffer strBuf2 = new StringBuffer("abc");</span>
二、StringBuffer类和String类相互转换
StringBuffer类和String类不同所以不能直接进行转换。
<span style="font-family:KaiTi_GB2312;font-size:14px;">StringBuffer s1 = "abc"; //error
StringBuffer s2 = (StringBuffer)"abc"; //error
String sb1 = "abc";
StringBuffer sb2 = new StringBuffer("123");
StringBuffer sb3 = new StringBuffer(sb1); //String转StringBuffer
String sb4 = sb3.toString(); //StringBuffer转String</span>
三、StringBuffer类的一些方法
1) public StringBuffer append(...);
追加内容到StringBuffer之后,类似于字符串的连接。
<span style="font-family:KaiTi_GB2312;font-size:14px;">StringBuffer sb1 = new StringBuffer("abc");
sb1.append("123");
System.out.println(sb1.toString()); //abc123</span>
此类拼接方法比String更加简洁高效,比如我们在对SQL进行操作时可以这样写。
<span style="font-family:KaiTi_GB2312;font-size:14px;">String TableName = "PersonInfo";
StringBuffer sb = new StringBuffer();
sb.append("SELECT * FROM ").append(TableName);
System.out.println(sb); //"SELECT * FROM PersonInfo"</span>
2) public StringBuffer deleteCharAt(int index); 删除指定位置的索引,若index=1则删除字符串的第二个字符
public StringBuffer delete(int startIndex, int endIndex); 删除指定区间的字符串,删除的内容包含startIndex、不包含endIndex。
<span style="font-family:KaiTi_GB2312;font-size:14px;">StringBuffer sb1 = new StringBuffer("MyJob");
sb1.deleteCharAt(2); //Myob
sb1.delete(1, 3); //Mb</span>
3) public StringBuffer insert(int offset, Object b); 该方法作用是对StringBuffer插入字符串。插入的位置从offset前一位,第二个参数为插入的内容。
<span style="font-family:KaiTi_GB2312;font-size:14px;">StringBuffer sb1 = new StringBuffer("MyJob");
sb1.insert(2, "123"); //My123Job</span>
4) public StringBuffer reverse(); 该方法是将StringBuffer内容进行反转形成新的字符串。
<span style="font-family:KaiTi_GB2312;font-size:14px;">StringBuffer sb1 = new StringBuffer("MyJob");
sb1.reverse(); //boJyM </span>
<span style="font-family:KaiTi_GB2312;font-size:14px;">StringBuffer sb1 = new StringBuffer("MyJob");
sb1.setCharAt(1, 'M'); //MMJob</span>
6) public void trimToSize();
该方法的作用是将StringBuffer对象中的存储空间缩小到和字符串一样的长度,减少空间浪费。