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(",")));
添加回答
舉報
