您的位置:首页 > Web前端

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

2016-11-23 19:21 309 查看
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
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: