Java 中的 StringBuffer:每個 Java 開發人員都應該知道的 11 種流行方法
已發表: 2021-05-26目錄
Java中StringBuffer的介紹
java中的StringBuffer是一個繼承java.lang.Object類方法的類。 它是 String 的對等類,用於創建可修改或可變的 String。 它提供了 String 的大部分功能,只是它可以更改,即它表示可寫和可增長的字符序列,而不是不可變和固定長度的字符序列。 以下是關於 Java 中的 java.lang.StringBuffer 的一些要點:
· 通過各種方法調用可以改變字符序列的內容和長度。
· 線程安全,即多線程安全使用
· java中的每個StringBuffer都有一個容量。
·子串和字符可以附加在末尾或中間插入。 它會自動增長並為添加空間騰出空間。 通常,預先分配的字符數量超過了為增長留出空間所需的數量。
下面是 Java 類中 StringBuffer 的聲明方式:
公共最終類 StringBuffer
擴展對象
實現可序列化,CharSequence
StringBuffer 類的構造函數
1. StringBuffer() - 用於構造一個初始容量為 16 個字符且其中沒有字符的字符串緩衝區。 句法:
StringBuffer a =new StringBuffer();
2. StringBuffer (CharSequence seq) ——用於構造一個字符串緩衝區,其中包含與 CharSequence 中相同的字符。
3. StringBuffer (int capacity) - 這用於創建一個字符串緩衝區,其初始容量已指定且沒有字符。 句法:
字符串緩衝區 a=新字符串緩衝區(10);
4. StringBuffer (String str) – 這用於創建具有給定字符串內容的字符串緩衝區。 句法:
StringBuffer a=new StringBuffer(“java中的字符串緩衝區”);
閱讀:字符串緩衝區和字符串生成器之間的區別
11種流行方法
1) Java Append()方法中的StringBuffer
.append() 用於連接給定的字符串和參數。 這是一個例子:
導入java.io.*;
公共類緩衝區{
公共靜態無效主要(字符串 [] 參數)
{
StringBuffer a = new StringBuffer(“stringbuffer”);
a.append(“在 Java 中”);
System.out.println(a);
a.附加(0);
System.out.println(a);
}
}
輸出:
2)Java Insert()方法中的StringBuffer
.insert() 方法用於在指定位置插入帶有主字符串的給定字符串。 這是一個例子:
導入java.io.*;
公共類緩衝區{
公共靜態無效主要(字符串 [] 參數)
{
StringBuffer a = new StringBuffer(“stringbuffer”);
a.插入(5,“為”);
System.out.println(a);
a.插入(0, 5);
System.out.println(a);
a.插入(3,假);
System.out.println(a);
a.插入(5,41.55d);
System.out.println(a);
a.插入(8,41.55f);
System.out.println(a);
字符 arr[] = { 'j', 'a', 'v', 'a' };
a.插入(2,arr);
System.out.println(a);
} }
輸出:
另請閱讀: Java 項目理念和主題
3) java replace()方法中的StringBuffer
.replace() 用於替換範圍(beginIndex、endIndex)中指定的字符串的一部分。 這是一個例子:
導入java.io.*;
公共類緩衝區{
公共靜態無效主要(字符串 [] 參數)
{
StringBuffer a = new StringBuffer(“stringbuffer”);
a.replace(5, 8, “是”);
System.out.println(a);
}
}
輸出:
4)Java Delete()方法中的StringBuffer
.delete() 用於刪除範圍(beginIndex、endIndex)中指定的字符串。
.deleteCharAt() 用於刪除特定索引處的字符。 此方法返回結果字符串緩衝區對象。 這是一個例子:
導入java.io.*;
公共類緩衝區{
公共靜態無效主要(字符串 [] 參數)
{
StringBuffer a = new StringBuffer(“java中的字符串緩衝區”);
a.delete(0, 6);
System.out.println(a);
a.deleteCharAt(7);
System.out.println(a);
}
}
輸出:
5)Java中的StringBuffer Reverse()方法
.reverse() 顧名思義用於反轉給定的字符串。 這是一個例子:
導入java.io.*;
公共類緩衝區{
公共靜態無效主要(字符串 [] 參數)
{
StringBuffer a = new StringBuffer(“stringbuffer”);
a.reverse();
System.out.println(a);
}
}
輸出:
6)JavaCapacity()方法中的StringBuffer
java類中StringBuffer的.capacity()用於返回緩衝區的當前容量。 16 是默認容量。 容量隨著字符數的增加而增加。 新容量=(舊容量*2)+2。 即如果當前容量為16,則新容量為32+2=34。
.length 用於在 java 中查找 StringBuffer 的長度。 例如:
導入java.io.*;
公共類緩衝區{
公共靜態無效主要(字符串 [] 參數)
{
StringBuffer a = new StringBuffer(“stringbuffer”);
int p = a.length();
int q = a.容量();
System.out.println("字符串長度=" + p);
System.out.println("字符串容量=" + q);
}
}
輸出:
從世界頂級大學在線獲得軟件工程學位。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
7) Java中的StringBuffer ensureCapacity()方法
stringbuffer 類的 .ensureCapacity() 用於確保指定的容量是當前容量的最小值。 如果給定容量大於當前容量,則新容量變為(舊容量*2)+2。 即如果 oldcapacity 為 16,則容量變為 34。例如:
公共類緩衝區{
公共靜態無效主要(字符串參數[]){
StringBuffer a=new StringBuffer();
System.out.println(a.capacity());
a.append(“你好”);
System.out.println(a.capacity());
a.append(“java”);
System.out.println(a.capacity());
a.確保容量(10);
System.out.println(a.capacity());
a.確保容量(50);
System.out.println(a.capacity());
}
}
輸出:
結帳:印度的 Java 開發人員薪水
8. charAt(int index) - 此方法用於返回給定索引處的字符。
9. substring(int begIndex) ——這個方法用於返回從beginIndex開始的給定字符串的子串。
10. substring(int beginIndex, int endIndex) - 此方法用於返回給定字符串的子字符串,從 beginIndex 開始,到 endIndex 結束。
11. void trimToSize() - 該方法用於減少字符序列的存儲空間
Java中String和StringBuffer的區別
我們使用這個例子來創建 StringBuffer 和 String 類的對象並修改它們。 我們看到 StringBuffer 對像被修改了,而 String 沒有。 請參見下面的示例:
公共類緩衝區{
公共靜態無效主(字符串參數 [])
{
字符串 str = “字符串”;
str.concat(“緩衝區”);
System.out.println(str);
StringBuffer strB = new StringBuffer(“字符串”);
strB.append(“緩衝區”);
System.out.println(strB);
}
}
輸出:
解釋:輸出是這樣的,因為字符串是不可變的。 如果我們嘗試連接字符串對象,它不會被改變。 但是,Java 中的 StringBuffer 會創建可變對象。 因此,它可以被改變。
有趣的點
- 它擴展了 Object 類。
- StringBuffer在java中實現的接口有Appendable、Serializable和CharSequence。
- StringBuffer 的方法可以在任何需要的地方同步。 這意味著所有操作的行為都好像它們以某種順序發生一樣。
- 當發生涉及源序列的操作時,此類僅在操作的字符串緩衝區上同步,而不在源上同步。
- 從對像類繼承的一些方法是equals、clone、getClass、notify、notifyAll、hashCode和finalize。
結論
Java 中的 StringBuffer 創建可修改的字符串對象。 因此,我們可以使用 StringBuffer 來追加、替換、反轉、連接和修改字符或字符串的序列。 StringBuffer 類下的方法遵循這些功能。 綜上所述,java中的StringBuffer只有在多個線程在修改StringBuffer的內容時才會用到。 它比字符串快。
在本文中,我們了解了有關 Java StringBuffer 的每一個細節。如果您想了解更多有關 Java 的知識並在您的技術職業生涯中提升,請探索upGrad -印度最大的在線高等教育公司的課程。
如果您有興趣了解有關 Java、全棧軟件開發的更多信息,請查看 upGrad 和 IIIT-B 的軟件開發執行 PG 計劃——全棧開發專業化,專為工作專業人士設計,提供 500 多個小時的嚴格培訓, 9+ 項目和任務,IIIT-B 校友身份,實用的實踐頂點項目和頂級公司的工作協助。