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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。