提问者:小点点

将整数列表转换为逗号分隔的字符串


我试图将整数列表转换为一串逗号分隔的整数。

Collector. join(CharSequence delimiter)-返回一个Collector,它按遇到顺序连接输入元素,由指定的分隔符分隔。

List<Integer> i = new ArrayList<>();    //  i.add(null);
for (int j = 1; j < 6; j++) {
    i.add(j);
}
System.out.println(i.stream().collect(Collectors.joining(","))); // Line 8

我在第8行收到一个错误:

该方法收集(Collector

在Java8中有没有一种方法可以通过流来做到这一点?

如果我使用“1”、“2”、“3”、“4”、“5”创建一个字符串列表。它起作用了。


共3个答案

匿名用户

是的。但是,Stream没有Collectors. join

System.out.println(i.stream().map(String::valueOf)
        .collect(Collectors.joining(",")));

哪些输出

1,2,3,4,5

此外,您可以生成Stream

System.out.println(
        IntStream.range(1, 6).boxed().map(String::valueOf)
               .collect(Collectors.joining(","))
);

匿名用户

使用Apache Commons Long库非常容易。

下议院朗

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
String str = org.apache.commons.lang.StringUtils.join(list, ","); // You can use any delimiter
System.out.println(str);  // Output: 1, 2, 3, 4, 5, 6, 7

Java8解决方案

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7);
String joinedList = list.stream().map(String::valueOf).collect(Collectors.joining(","));
System.out.println(joinedList);

匿名用户

使用番石榴的com.google

String res = Joiner.on(",").join(integerlist);

使用Java流API

String res = integerlist.stream()
                        .map(String::valueOf)
                        .collect(Collectors.joining(","));