我们已经有了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