gpt4 book ai didi

java - 有效地加入嵌套列表中的文本

转载 作者:搜寻专家 更新时间:2023-10-31 19:36:44 26 4
gpt4 key购买 nike

假设我有一个文本表示为单词行的集合。我想用空格在一行中加入单词,并用换行符加入行:

class Word {
String value;
}

public static String toString(List <List <Word>> lines) {
return lines.stream().map(
l -> l.stream().map(w -> w.value).collect(Collectors.joining(" "))
).collect(Collectors.joining("\n"));
}

这工作正常,但我最终为每一行创建了一个中间 String 对象。是否有一种简洁明了的方法可以在不产生开销的情况下完成同样的工作?

最佳答案

 String s = List.of(
List.of(new Word("a"), new Word("b")),
List.of(new Word("c"), new Word("d")),
List.of(new Word("e"), new Word("f")))
.stream()
.collect(Collector.of(
() -> new StringJoiner(""),
(sj, list) -> {
list.forEach(x -> sj.add(x.getValue()).add(" "));
sj.add("\n");
},
StringJoiner::merge,
StringJoiner::toString));

编辑

我知道这一点,但不知道您是否同意额外的冗长与创建该字符串:

.stream()
.collect(Collector.of(
() -> new StringJoiner(""),
(sj, list) -> {
int i;
for (i = 0; i < list.size() - 1; ++i) {
sj.add(list.get(i).getValue()).add(" ");
}
sj.add(list.get(i).getValue());
sj.add("\n");
},
StringJoiner::merge,
x -> {
String ss = x.toString();
return ss.substring(0, ss.length() - 1);
}));

关于java - 有效地加入嵌套列表中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48672931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com