Java可以用一个StringBuilder构造多个字符串吗?

Can one StringBuilder be used for constructing multiple strings in Java?

我正在尝试创建一定数量的长字符串。我应该为每个新字符串创建一个新的 StringBuilder 还是可以创建多个?

我需要创建 4 个字符串 s1、s2、s3、s4。它们是否都可以由一个 StringBuilder 创建为单独的字符串,还是我必须为每个 s 创建一个新的 StringBuilder?

Can one StringBuilder be used for constructing multiple strings in Java?

您可以重复使用 StringBuilder 的相同引用来构造任意数量的字符串,但每个新字符串都会覆盖其中的旧字符串。 StringBuilder 不是容器 class。您需要 container class 来存储 String 的多个实例。下面给出了一个例子:

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String args[]) {
        StringBuilder sb;
        List<StringBuilder> list = new ArrayList<StringBuilder>();

        sb = new StringBuilder("Hello");
        list.add(sb);

        sb = new StringBuilder("World");
        list.add(sb);

        System.out.println(sb);// Only the last value sb is constructed with
        System.out.println(list);// All the values added to list
    }
}

输出:

World
[Hello, World]

请注意,您可以连接字符串以形成单个字符串,但它们不可区分。即使您设法通过在它们之间放置某种分隔符来区分它们,处理它们也会非常困难且容易出错。

是的,单个 StringBuilder 可用于构建多个独立的字符串