Java 中的StringBuilder 表示可變的字符序列。由於 Java 中的 String 類創建了不可變的字符序列,因此 StringBuilder 類提供了 String 類的替代方案,因為它創建了可變的字符序列。 StringBuilder 的函數與 StringBuffer 類非常相似,因為它們都通過創建可變的字符序列來提供 String 類的替代方案。然而,StringBuilder 類與StringBuffer 類在同步方麵有所不同。 StringBuilder 類不提供同步保證,而 StringBuffer 類提供同步保證。因此,此類設計為在單線程使用 StringBuffer 的地方(通常是這種情況)用作 StringBuffer 的 drop-in 替代品。如果可能,建議優先使用此類而不是 StringBuffer,因為它在大多數實現下會更快。 StringBuilder 的實例對於多個線程使用並不安全。如果需要此類同步,則建議使用StringBuffer。 String Builder 不是線程安全的,並且與 String buffer 相比性能較高。
類層次結構如下:
java.lang.Object ↳ java.lang ↳ Class StringBuilder
用法:
public final class StringBuilder extends Object implements Serializable, CharSequence
Java StringBuilder 類中的構造函數
- StringBuilder():構造一個字符串生成器,其中不包含任何字符,初始容量為 16 個字符。
- StringBuilder(int 容量):構造一個字符串生成器,其中不包含任何字符,並且初始容量由容量參數指定。
- StringBuilder(CharSequence seq):構造一個字符串生成器,其中包含與指定 CharSequence 相同的字符。
- 字符串生成器(字符串 str):構造一個初始化為指定字符串內容的字符串生成器。
下麵是一個示例程序,用於說明 Java 中的StringBuilder。
Java
// Java Code to illustrate StringBuilder
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
public class GFG1 {
public static void main(String[] argv) throws Exception
{
// Create a StringBuilder object
// using StringBuilder() constructor
StringBuilder str = new StringBuilder();
str.append("GFG");
// print string
System.out.println("String = " + str.toString());
// create a StringBuilder object
// using StringBuilder(CharSequence) constructor
StringBuilder str1
= new StringBuilder("AAAABBBCCCC");
// print string
System.out.println("String1 = " + str1.toString());
// create a StringBuilder object
// using StringBuilder(capacity) constructor
StringBuilder str2 = new StringBuilder(10);
// print string
System.out.println("String2 capacity = "
+ str2.capacity());
// create a StringBuilder object
// using StringBuilder(String) constructor
StringBuilder str3
= new StringBuilder(str1.toString());
// print string
System.out.println("String3 = " + str3.toString());
}
}
String = GFG String1 = AAAABBBCCCC String2 capacity = 10 String3 = AAAABBBCCCC
Methods in Java StringBuilder
StringBuilder append(X x) :此方法將 X 類型參數的字符串表示形式附加到序列中。
- StringBuilder appendCodePoint(int codePoint) :此方法將 codePoint 參數的字符串表示形式附加到此序列。
- int capacity():此方法返回當前容量。
- char charAt(int index):此方法返回此序列中指定索引處的 char 值。
- IntStream chars():此方法返回 int zero-extending 此序列中的 char 值的流。
- int codePointAt(int index):此方法返回指定索引處的字符(Unicode 代碼點)。
- int codePointBefore(int index):此方法返回指定索引之前的字符(Unicode 代碼點)。
- int codePointCount(int beginIndex, int endIndex):此方法返回此序列的指定文本範圍內的 Unicode 代碼點的數量。
- IntStream codePoints():此方法返回此序列中的代碼點值流。
- StringBuilder delete(int start, int end):此方法刪除此序列的子字符串中的字符。
- StringBuilderdeleteCharAt(int 索引):此方法刪除此序列中指定位置的字符。
- void ensureCapacity(int minimumCapacity):此方法確保容量至少等於指定的最小值。
- StringBuilder getChars():此方法將字符從此序列複製到目標字符數組 dst 中。
- int indexOf():此方法返回此字符串中指定子字符串第一次出現的索引。
- StringBuilder 插入(int 偏移量,布爾值 b):此方法將布爾替代參數的字符串表示形式插入到此序列中。
- StringBuilder insert():此方法將 char 參數的字符串表示形式插入到此序列中。
- int lastIndexOf():此方法返回此字符串中最後一次出現的指定子字符串的索引。
- int length():此方法返回長度(字符數)。
- int offsetByCodePoints(int 索引, int codePointOffset):此方法返回此序列中的索引,該索引與給定索引偏移 codePointOffset 代碼點。
- StringBuilder replace():此方法將此序列的子字符串中的字符替換為指定字符串中的字符。
- StringBuilder reverse():此方法導致該字符序列被相反的序列替換。
- void setCharAt(int index, char ch) :在此方法中,指定索引處的字符設置為 ch。
- void setLength(int newLength):該方法設置字符序列的長度。
- CharSequence subSequence(int start, int end):此方法返回一個新的字符序列,該序列是該序列的子序列。
- String substring():此方法返回一個新字符串,其中包含當前包含在此字符序列中的字符子序列。
- String toString():此方法返回表示此序列中的數據的字符串。
- void trimToSize():此方法嘗試減少用於字符序列的存儲。
例子:
Java
// Java code to illustrate
// methods of StringBuilder
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
public class GFG1 {
public static void main(String[] argv)
throws Exception
{
// create a StringBuilder object
// with a String pass as parameter
StringBuilder str
= new StringBuilder("AAAABBBCCCC");
// print string
System.out.println("String = "
+ str.toString());
// reverse the string
StringBuilder reverseStr = str.reverse();
// print string
System.out.println("Reverse String = "
+ reverseStr.toString());
// Append ', '(44) to the String
str.appendCodePoint(44);
// Print the modified String
System.out.println("Modified StringBuilder = "
+ str);
// get capacity
int capacity = str.capacity();
// print the result
System.out.println("StringBuilder = " + str);
System.out.println("Capacity of StringBuilder = "
+ capacity);
}
}
String = AAAABBBCCCC Reverse String = CCCCBBBAAAA Modified StringBuilder = CCCCBBBAAAA, StringBuilder = CCCCBBBAAAA, Capacity of StringBuilder = 27
StringBuilder是Java中另一個用於操作字符串的類。與 StringBuffer 一樣,它是一個可變類,允許您修改它表示的字符串的內容。但是,StringBuilder 不是線程安全的,因此不應該在多線程環境中使用。
以下是如何在 Java 中使用 StringBuilder 的一些示例:
Java
public class StringBuilderExample {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" ");
sb.append("world!");
System.out.println(sb.toString()); // Output: "Hello world!"
sb.insert(6, "beautiful ");
System.out.println(sb.toString()); // Output: "Hello beautiful world!"
sb.reverse();
System.out.println(sb.toString()); // Output: "!dlrow lufituaeb olleH"
}
}
Hello world! Hello beautiful world! !dlrow lufituaeb olleH
相關用法
- Java StringBuilder lastlastIndexOf()用法及代碼示例
- Java StringBuilder append()用法及代碼示例
- Java StringBuilder appendCodePoint()用法及代碼示例
- Java StringBuilder capacity()用法及代碼示例
- Java StringBuilder charAt()用法及代碼示例
- Java StringBuilder codePointAt()用法及代碼示例
- Java StringBuilder codePointCount()用法及代碼示例
- Java StringBuilder delete()用法及代碼示例
- Java StringBuilder deleteCharAt()用法及代碼示例
- Java StringBuilder ensureCapacity()用法及代碼示例
- Java StringBuilder getChars()用法及代碼示例
- Java StringBuilder indexOf()用法及代碼示例
- Java StringBuilder lastIndexOf()用法及代碼示例
- Java StringBuilder offsetByCodePoints()用法及代碼示例
- Java StringBuilder replace()用法及代碼示例
- Java StringBuilder reverse()用法及代碼示例
- Java StringBuilder setCharAt()用法及代碼示例
- Java StringBuilder setLength()用法及代碼示例
- Java StringBuilder subSequence()用法及代碼示例
- Java StringBuilder substring()用法及代碼示例
- Java StringBuilder toString()用法及代碼示例
- Java StringBuilder trimToSize()用法及代碼示例
- Java StringBuilder length()用法及代碼示例
- Java StringBuilder codePointBefore()用法及代碼示例
- Java StringBuilder.offsetByCodePoints()用法及代碼示例
注:本文由純淨天空篩選整理自RishabhPrabhu大神的英文原創作品 StringBuilder Class in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。