我可以使用 java 8 流将字符串列表转换为单个字符串吗

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

我使用

java
编写了以下代码。

List<String> list = new ArrayList<String>();
list.add("book1");
list.add("book2");
list.add("book3");
list.add("book4");


String combined = "";

for(int i=0;i<list.size();i++) {
    combined = combined + (i+1)+ ". "+list.get(i)+" \r\n";
}

System.out.println(combined);

输出

1. book1 
2. book2 
3. book3 
4. book4 

如何使用

streams
编写此代码。我尝试执行以下操作:

String combined2 = "";

List<String> list2 = IntStream.range(0, list.size()).mapToObj(i->i+1+". "+list.get(i)+" \r\n").toList();


for(String s:list2) {
    combined2 = combined2+s;
}

System.out.println(combined2);

但我不想在这里使用

for
循环。我该如何改进我的方法?

java java-8 stream
1个回答
1
投票

你就快到了。您只需要使用

Stream.collect

这是修改后的代码。

        String list2 = IntStream.range(0, list.size())
                .mapToObj(i-> i+1 + ". " + list.get(i))
                .collect(Collectors.joining(System.lineSeparator()));

输出:

1. book1
2. book2
3. book3
4. book4
© www.soinside.com 2019 - 2024. All rights reserved.