当项目位于 StringBuilder 中时将字符串连接到最终字符串中

问题描述 投票:0回答:1

我已阅读有关 StringBuilder API 和 StringJoiner API 以及 String.join 的信息,但不确定 StringBuilder 实例中是否有项目,这些项目调用用于与所选分隔符进行连接。我不想手动迭代并执行它(在某种程度上容易出错)

以下返回不带分隔符的结果:

        StringBuilder sb = new StringBuilder();
        sb.append("s1");
        sb.append("s2");
        String str2 = String.join("::",sb);
        System.out.println(str2);

上面的输出为

s1s2
。我不确定为什么?

java
1个回答
0
投票

这是不可能的。 StringBuilder 不维护可以稍后连接的单独元素。当您尝试调用

String.join
时,元素边界已经丢失。

您需要从一开始就使用 StringJoiner,或者如果由于某种原因您确实被迫使用 StringBuilder,则需要手动在项目之间添加分隔符。

© www.soinside.com 2019 - 2024. All rights reserved.