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 會創建可變對象。 因此,它可以被改變。

有趣的點

  1. 它擴展了 Object 類。
  2. StringBuffer在java中實現的接口有Appendable、Serializable和CharSequence。
  3. StringBuffer 的方法可以在任何需要的地方同步。 這意味著所有操作的行為都好像它們以某種順序發生一樣。
  4. 當發生涉及源序列的操作時,此類僅在操作的字符串緩衝區上同步,而不在源上同步。
  5. 從對像類繼承的一些方法是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 校友身份,實用的實踐頂點項目和頂級公司的工作協助。

踏上夢想的工作

申請 upGrad 的軟件工程與工作相關的 PG 認證