Java 简明教程

Java StringBuilder Class

StringBuilder Class Introduction

Java StringBuilder 类是一个可变的字符序列。这提供了一个与 StringBuffer 兼容的 API,但没有同步保证。StringBuilder 类可用于替换只需线程操作的 StringBuffer。由于 StringBuffer 具有同步开销,因此 StringBuilder 作为 StringBuffer 的更快替代品。如果在需要同步字符串操作的多线程环境中,建议使用 StringBuffer,否则使用 StringBuilder 来提高性能。

StringBuilder Class Declaration

以下是 java.lang.StringBuilder 类的声明 −

public final class StringBuilder
   extends Object
      implements Serializable, CharSequence

StringBuilder Class Constructors

以下是 StringBuilder 类的构造函数列表。

Sr.No.

Constructor & Description

1

StringBuilder() 构造一个不包含字符且初始容量为 16 个字符的字符串构造器。

2

StringBuilder(CharSequence seq) 构造一个包含与指定的 charsequence 相同的字符的字符串构建器。

3

StringBuilder(int capacity) 构造一个不包含字符且初始容量由容量参数指定的字符串构建器。

4

StringBuilder(String str) 构造一个初始化为指定字符串的内容的字符串构建器。

StringBuilder Class methods

以下是 StringBuilder 类的方法列表。每个方法都有多个示例,展示它的功能。

Sr.No.

Method & Description

1

StringBuilder append() 此方法将给定的字符串参数追加到序列。

2

StringBuilder appendCodePoint(int codePoint) 此方法将 codepoint 参数的字符串表示追加到此序列。

3

int capacity() 此方法返回当前容量。

4

char charAt(int index) 此方法返回此序列中指定索引处的 char 值。

5

int codePointAt(int index) 此方法返回指定索引处的字符(Unicode 代码点)。

6

int codePointBefore(int index) 此方法返回指定索引之前的字符(Unicode 代码点)。

7

int codePointCount(int beginIndex, int endIndex) 此方法返回此序列的指定文本范围内的 Unicode 代码点的数量。

8

StringBuilder delete(int start, int end) 此方法删除这个序列的子字符串中的字符。

9

StringBuilder deleteCharAt(int index) 此方法删除此序列中指定位置的字符。

10

void ensureCapacity(int minimumCapacity) 此方法确保容量至少等于指定的最小值。

11

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) 字符从该序列复制到目标字符数组 dst。

12

int indexOf(String str) 此方法返回此字符串中第一次出现指定子字符串的索引。

13

StringBuilder insert() 此方法将给定参数的字符串表示形式插入到此序列中。

14

int lastIndexOf(String str) 此方法返回此字符串中指定子字符串的最右端出现位置的索引。

15

int length() 此方法返回长度(字符数)。

16

int offsetByCodePoints(int index, int codePointOffset) 此方法返回此序列中由代码点偏移量 codePointOffset 个代码点从给定索引偏移的索引。

17

StringBuilder replace(int start, int end, String str) 此方法将此序列的子字符串中的字符替换为指定字符串中的字符。

18

StringBuilder reverse() 此方法使得此字符序列被序列的倒序列替换。

19

void setCharAt(int index, char ch) 指定索引处的字符设置为 ch。

20

void setLength(int newLength) 此方法设置字符序列的长度。

21

CharSequence subSequence(int start, int end) 此方法返回一个新的字符序列,它是此序列的子序列。

22

String substring(int start) 此方法返回一个新字符串,其中包含此字符序列中当前包含的字符的子序列。

23

String toString() 此方法返回一个表示此序列中数据的字符串。

24

void trimToSize() 此方法尝试减少用于字符序列的存储空间。

Methods inherited

此类从以下类中继承方法:

  1. java.lang.Object

  2. java.lang.CharSequence

Example: Append a Boolean to the StringBuilder

以下示例说明了 Java StringBuilder append(Boolean b) 方法的用法。在此,我们通过字符串名称“tuts”实例化一个 StringBuilder 对象“buff”。然后,我们使用带有布尔类型参数“true”的“buff”对象调用 append() 方法。返回值将是附加的字符串名称“tuts true”。同样,我们使用字符串名称“abcd”和布尔类型参数“false”展示另一个案例。

package com.tutorialspoint;

public class StringBuilderDemo {

   public static void main(String[] args) {

      StringBuilder stringBuilder = new StringBuilder("tuts ");
      System.out.println("builder = " + stringBuilder);

      // appends the boolean argument as string to the string stringBuilder
      stringBuilder.append(true);

      // print the string stringBuilder after appending
      System.out.println("After append = " + stringBuilder);

      stringBuilder = new StringBuilder("abcd ");
      System.out.println("stringBuilder = " + stringBuilder);

      // appends the boolean argument as string to the string stringBuilder
      stringBuilder.append(false);

      // print the string stringBuilder after appending
      System.out.println("After append = " + stringBuilder);
   }
}

Output

让我们编译并运行上述程序,这将生成以下结果 −

stringBuilder = tuts
After append = tuts true
stringBuilder = abcd
After append = abcd false