我们已经有了StringBuilder时为什么要使用StringJoiner?

我最近遇到了一个Java

8类StringJoiner,该类使用定界符添加String并向其添加前缀和后缀,但是我无法理解此类的需要,因为它也在StringBuilder后端使用,并且执行非常简单的附加操作字符串。

我是否没有真正理解本堂课的真正目的而错过了某些东西?

回答:

StringJoiner当您需要在中将Strings连接时,此功能非常有用Stream

例如,如果您必须遵循以下字符串列表:

final List<String> strings = Arrays.asList("Foo", "Bar", "Baz");

使用起来更简单

final String collectJoin = strings.stream().collect(Collectors.joining(", "));

就像使用StringBuilder

final String collectBuilder =

strings.stream().collect(Collector.of(StringBuilder::new,

(stringBuilder, str) -> stringBuilder.append(str).append(", "),

StringBuilder::append,

StringBuilder::toString));

如评论中所述,现在有许多更简单的解决方案,如String.join(", ", strings),当时还不可用。但是用例仍然相同。

以上是 我们已经有了StringBuilder时为什么要使用StringJoiner? 的全部内容, 来源链接: utcz.com/qa/406641.html

回到顶部