J2SE第六章——常用类(二)StringBuffer类

StringBuffer

         问题:String 类是字符数组,长度不变,在执行字符串的连接操作时,是存在问题的

public class Test {
	public static void main(String[] args) {
		String s1 = "abc";	
		String s2 = "123";	
		s1 = s1 + s2;

		System.out.println(s1);  // abx123
	}
}
 
 

解决方法:

       StringBuffer类——长度可以改变的字符串

 

      1.2.1 StringBuffer 构造函数

StringBuffer sb1 = new StringBuffer();
	AbstractStringBuffer() {
		super(16);
	}

	AbstractStringBuilder(int capacity) {
		value = new char[capacity]; 
	}
	StringBuffer sb1 = new StringBuffer(); // new char[16];
	-----------------------------------------------------			
	StringBuffer sb2 = new StringBuffer(20); // new char[20];
	------------------------------------------------------
	StringBuffer sb3 = new StringBuffer("abc");  // new char[3+16]; 
}

     1.2.2append() 追加

          ——在原串的尾部追加(影响原字符串)

public class Test {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer("abc");
		sb.append("123sgascahrhagad"); // 如果字符数组的长度小于需求,则以16的倍数自动追加
	}
}

     1.2.3reverse() 反转

public class Test {
	public static void main(String[] args) {
		StringBuffer sb = new StringBuffer("abc");
		System.out.println(sb.reverse());  // cba
	}
}

public class Test {
	public static void main(String[] args) {
		String s = "Mircosoft";					
                char[] a = {'a','b','c'};
		StringBuffer sb1 = new StringBuffer(S);  // 9+16
		sb1.append('/').append("IBM").append('/').append("sun"); 
		System.out.println(sb1);  //     Mircosoft/IBM/sun
	}
}






你可能感兴趣的:(J2SE第六章——常用类(二)StringBuffer类)