我试图将整数列表转换为一串逗号分隔的整数。
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”
创建一个字符串列表。它起作用了。
是的。但是,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(","));