一、StringBuffer 类
1. java.lang.StringBuffer 代表可变的字符序列。
2. StringBuffer 和 String 类似,但 StringBuffer可以对其字符串进行改变。
3. StringBuffer 类的常见构造方法:
▶StringBuffer ( )
创建一个不包含字符序列的“空”的 StringBuffer 对象。
▶StringBuffer(String str)
创建一个 StringBuffer 对象,包含与 String 对象 str 相同的字符序列。
public class Test {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "world";
s1 += s2;
}
}
s1与s2分别指向内存中的不同字符串,在创建后就不可变了,执行该命令时需要在内存中开辟一个新的区域,将两块内容copy过去,而StringBuffer由于是可变的,就不存在这种情况。
二、StringBuffer常用方法
1. 重载方法 public StringBuffer append ( ... ) 可以为该 StringBuffer 对象添加字符序列,返回添加后的该StringBuffer 对象引用,例如:
public StringBuffer append ( String str)
public StringBuffer append ( StringBuffer sbuf )
public StringBuffer append ( char[ ] str )
public StringBuffer append ( char[ ] str, int offset, int len) //添加字符数组的一部分
public StringBuffer append ( double d) // 把double转换成字符串添加到后面
public StringBuffer append ( Object obj) //调用Object的toString方法
2. 重载方法 public StringBuffer insert ( ... ) 可以为该 StringBuffer 对象在指定位置插入字符序列,返回修改后的该StringBuffer对象引用,例如:
public StringBuffer insert ( int offset, String str )
public StringBuffer insert (int offset, double d)
3. 方法 public StringBuffer delete ( int start, int end ) 可以删除从 start 开始到 end-1为止的一段字符序列,返回修改后的该 StringBuffer 对象引用。
4. 和String类含义类似的方法:
public int indexOf( String str )
public int indexOf( String str, int fromIndex )
public String substring ( int start )
public String substring (int start, int end )
public int length( )
5. 方法 public StringBuffer reverse ( ) 用于将字符序列逆序,返回修改后的该StringBuffer对象引用。
public class Test {
public static void main(String[] args) {
String s = "Microsoft";
char[] a = {'a','b','c'};
StringBuffer sb1 = new StringBuffer(s);
sb1.append('/').append("IBM").append('/').append("Sun");
System.out.println(sb1);
StringBuffer sb2 = new StringBuffer("数字");
for(int i = 0; i <= 9; i++) {
sb2.append(i);
}
System.out.println(sb2);
sb2.delete(8,sb2.length()).insert(0,a);
System.out.println(sb2);
System.out.println(sb2.reverse());
}
}
/*
运行结果:
Microsoft/IBM/Sun
数字0123456789
abc数字012345
543210字数cba
*/