Java基礎學習(六):StringBuilder、StringBuffer、String類方法彙總
一、爲什麼要學習StringBuilder、StringBuffer?
- 字符串拼接,刪除,改動需要重新申請內存,重新複製對象,浪費空間與時間。
- StringBuilder、StringBuffer事先會分配一定的大小空間,字符串操作不需要重新分配內存。
- StringBuilder是非線程安全,StringBuffer是線程安全,前者效率高。
二、StringBuilder、StringBuffer的創建方法
StringBuilder()
默認16字節StringBuilder(int capacity)
自定義內存大小StringBuilder(String str )
輸入字符串
示例:
public class first {
public static void main(String[] args) {
StringBuilder s1 = new StringBuilder();
StringBuilder s2 = new StringBuilder(32);
StringBuilder s3 = new StringBuilder("hahahaha");
System.out.println("s1 is :" + s1);
System.out.println("s2 is :" + s2);
System.out.println("s3 is :" + s3);
}
}
//---------------輸出----------------
s1 is :
s2 is :
s3 is :hahahaha
三、StringBuilder常見操作
方法 | 功能描述 | 備註 |
---|---|---|
append() | 將基本類型數值和字符串數組轉化成字符串,並添加到StringBuilder末端 | append有函數重載 |
insert() | 將基本類型數值和字符串數組轉化成字符串,並插入到StringBuilder對象指定的索引位置,其他位置字符依次後移 | 傳入兩個入參,一個是插入位置,一個是插入的字符或字符串 |
delete(int start , int end) | 刪除該對象指定索引範圍的字符 | 改變了原字符串,左閉右開 |
charAt() | 返回StringBuilder對象序列中,入參索引位置的字符值 | |
capacity() | 返回當前容量,以字符爲單位 | |
replace(int start , int end , String str) | 將指定範圍的字符串替換成新的字符串 | 左閉右開 |
reverse() | 將字符串反轉 | 返回StringBuilder對象,原來的對象被改變 |
toString() | 可以將對象內容打印出來 |
示例:
public class first {
public static void main(String[] args) {
StringBuilder s3 = new StringBuilder("hahahaha");
s3.append(",hello"); //輸出:s3 is :hahahaha,hello
s3.insert(0, "GG"); //輸出:s3 is :GGhahahaha,hello
s3.delete(2, 10); //輸出:s3 is :GG,hello
System.out.println(s3.charAt(2)); //輸出:,
s3.replace(0, 2, "i love you"); //輸出:s3 is :i love you,hello
System.out.println(s3.reverse()); //輸出:olleh,uoy evol i /n s3 is :olleh,uoy evol i
System.out.println("s3 is :" +s3);
}
}
StringBuffer與StringBuilder基本方法大概一樣。