javaAPI_StringBuffer


StringBuffer

1.StringBuffer概述
为什么会出现StringBuffer,如果我们对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,这样操作会耗费时间,同时浪费空间,
于是,java就给我们提供了StringBuffer,用于解决这一个问题。

2.StringBuffer
StringBuffer是线程安全的可变字符串。


3.StringBuffer和String之间的区别?
前者长度和内容都可变,后者不可变。
如果前者做字符串的拼接,那么就不会浪费太多的空间。


4.StringBuffer的构造方法
public StringBuffer():StringBuffer的无参构造方法
public StringBuffer(int capacity):指定容量的字符串缓冲区对象
public StringBuffer(String str):指定字符串内容的字符串缓冲区对象


StringBuffer的俩个长度方法:
public int capacity():返回当前的容量。理论值
public int length():返回长度(字符数)。实际存储值


代码测试:
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
System.out.println("sb:"+sb);
System.out.println("sb.capacity:"+sb.capacity());
System.out.println("sb.length:"+sb.length());
System.out.println("----------------");

StringBuffer sb1 = new StringBuffer(50);
System.out.println("sb1:"+sb);
System.out.println("sb1.capacity:"+sb1.capacity());
System.out.println("sb1.length:"+sb1.length());
System.out.println("-----------------");

StringBuffer sb2 = new StringBuffer("hello");
System.out.println("sb2:"+sb2);
System.out.println("sb2.capacity:"+sb2.capacity());
System.out.println("sb2.length:"+sb2.length());
}
//结果:
sb:
sb.capacity:16
sb.length:0
----------------
sb1:
sb1.capacity:50
sb1.length:0
-----------------
sb2:hello
sb2.capacity:21
sb2.length:5

 

5.StringBuffer的成员方法

(1).StringBuffer的添加功能
public StringBuffer append(String str):可以把任意类型的字符添加到字符串缓冲区里面,并返回缓冲区本身
//代码测试
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
StringBuffer sb1 = sb.append("hello");
System.out.println(sb == sb1);//true
}
//表明StringBuffer在开辟空间的时候俩个对象只开辟了一个存储空间。


public StringBuffer insert(int offset,String str):在指定位置把任意类型的字符字符添加到字符串缓冲区里面,并返回缓冲区本身


(2).StringBuffer的删除功能
public StringBuffer deleteCharAt(int index):删除指定位置的字符,并返回本身。
public StringBuffer delete(int start,int end):删除从指定位置开始到结束的内容,并返回本身。


(3).StringBuffer的替换功能
public StringBuffer replace(int start,int end,String str);用start开始到end使用str替换。

(4).StringBuffer的反转功能
public StringBuffer reverse():把字符串从尾到头重写排列组成一个新的字符串。


(5).StringBuffer的截取功能
public String substring(int start);从指定位置开始从StringBuffer中截取从start位置开始到最后的字符串,并返回截取出来的字符串
public String substring(int start,int end):从StringBuffer中截取指定位置开始到结束的字符串,并把截取内容返回。


(6).把String和StringBuffer进行相互转化

public static void main(String[] args) {
//String转化为StringBuffer
String str = "hello";
//方法1:通过构造方法
StringBuffer sb = new StringBuffer(str);
//通过StringBuffer的append
StringBuffer sb2 = new StringBuffer();
sb2.append(str);
System.out.println("-----------");

//StringBuffer转String
//方法1:通过构造方法
StringBuffer sbf = new StringBuffer("java");
//通过构造方法
String str2 = new String(sbf);
//通过toString()方法
String str3 = sbf.toString();

}

(7).String,StringBuffer,以及StringBulder之间的区别
String:内容不可变,而StringBuffer和StringBuilder都是内容可变的。
StringBuffer是同步的,数据安全,效率低;StringBulder是不同步的,数据不安全,效率高。

 

posted @ 2018-12-26 21:36  德墨特尔  阅读(187)  评论(0编辑  收藏  举报