3 回答

TA贡献1797条经验 获得超6个赞
就像这样:
List<String> numbers = Arrays.asList("111", "2222", "3333", "4444");
String collect = numbers.stream().map(n -> "'" + n + "'").collect(Collectors.joining(","));
System.out.println(collect);

TA贡献1780条经验 获得超1个赞
为了好玩,使用 aStringBuilder
和自定义收集器:
String result = Arrays.asList("111", "2222", "3333", "4444") .stream() .collect(Collector.of( StringBuilder::new, (sb, s) -> sb.append('\'').append(s).append('\'').append(","), StringBuilder::append, sb -> { sb.setLength(Math.max(0, sb.length() - 1)); return sb.toString(); }));

TA贡献1824条经验 获得超6个赞
String numbers = Arrays.asList("111", "2222", "3333", "4444").stream()
.map(number -> "'" + number + "'")
.collect(Collectors.joining(",")));
这会给你
"111,'2222,'3333,'4444"
正如评论中所建议的那样,您也可以通过直接创建带有数字的流而不是先创建列表然后再创建流来实现。
Stream.of("111", "2222", "3333", "4444")
.map(number -> "'" + number + "'")
.collect(Collectors.joining(",")));
添加回答
举报