将整数列表转换为逗号分隔的字符串
Convert a list of integers into a comma-separated string
我试图将整数列表转换为逗号分隔的整数字符串。
Collectors.joining(CharSequence delimiter) - Returns 一个 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 行遇到错误。
有没有办法通过 Java 8 中的流来做到这一点?
如果我用 "1", "2", "3","4","5"
创建一个字符串列表。它有效。
是的。但是,没有Collectors.joining
一个Stream<Integer>
;你需要 Stream<String>
所以你应该 map
在收集之前。像,
System.out.println(i.stream().map(String::valueOf)
.collect(Collectors.joining(",")));
输出
1,2,3,4,5
此外,您可以通过多种方式生成 Stream<Integer>
。
System.out.println(
IntStream.range(1, 6).boxed().map(String::valueOf)
.collect(Collectors.joining(","))
);
使用 Apache Commons Lang 库非常简单。
Commons Lang
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
Java 8 解
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);
使用Guava's com.google.common.base.Joiner
String res = Joiner.on(",").join(integerlist);
使用 Java 流 API
String res = integerlist.stream()
.map(String::valueOf)
.collect(Collectors.joining(","));
您的问题的答案可能是:
List.toString()
如下:
List<Integer> intList = new ArrayList<Integer>();
intList.add(1);
intList.add(2);
intList.add(3);
String listString = intList.toString();
System.out.println(listString); // <- this prints [1, 2, 3]
下面这个post,解释的很好。我希望你会发现它有用:
Java: Convert List<Integer> to String
我试图将整数列表转换为逗号分隔的整数字符串。
Collectors.joining(CharSequence delimiter) - Returns 一个 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 行遇到错误。
有没有办法通过 Java 8 中的流来做到这一点?
如果我用 "1", "2", "3","4","5"
创建一个字符串列表。它有效。
是的。但是,没有Collectors.joining
一个Stream<Integer>
;你需要 Stream<String>
所以你应该 map
在收集之前。像,
System.out.println(i.stream().map(String::valueOf)
.collect(Collectors.joining(",")));
输出
1,2,3,4,5
此外,您可以通过多种方式生成 Stream<Integer>
。
System.out.println(
IntStream.range(1, 6).boxed().map(String::valueOf)
.collect(Collectors.joining(","))
);
使用 Apache Commons Lang 库非常简单。
Commons Lang
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
Java 8 解
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);
使用Guava's com.google.common.base.Joiner
String res = Joiner.on(",").join(integerlist);
使用 Java 流 API
String res = integerlist.stream()
.map(String::valueOf)
.collect(Collectors.joining(","));
您的问题的答案可能是:
List.toString()
如下:
List<Integer> intList = new ArrayList<Integer>();
intList.add(1);
intList.add(2);
intList.add(3);
String listString = intList.toString();
System.out.println(listString); // <- this prints [1, 2, 3]
下面这个post,解释的很好。我希望你会发现它有用:
Java: Convert List<Integer> to String