3 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
就像這樣:
List<String> numbers = Arrays.asList("111", "2222", "3333", "4444");
String collect = numbers.stream().map(n -> "'" + n + "'").collect(Collectors.joining(","));
System.out.println(collect);

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊
為了好玩,使用 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貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊
String numbers = Arrays.asList("111", "2222", "3333", "4444").stream()
.map(number -> "'" + number + "'")
.collect(Collectors.joining(",")));
這會(huì)給你
"111,'2222,'3333,'4444"
正如評(píng)論中所建議的那樣,您也可以通過直接創(chuàng)建帶有數(shù)字的流而不是先創(chuàng)建列表然后再創(chuàng)建流來實(shí)現(xiàn)。
Stream.of("111", "2222", "3333", "4444")
.map(number -> "'" + number + "'")
.collect(Collectors.joining(",")));
添加回答
舉報(bào)