猿问

在 Java 8 中为单引号和逗号连接数字

我是Java 8 的新手,希望仅在 Java 8 中实现以下功能。


我有以下号码


1111

2222

3333

4444

我想转换所有这些数字,如 '1111','2222','3333','4444' 数字列表可以是任何东西,它应该是动态的


我开发了如下代码,但只有一半目的


List<String> numbers = Arrays.asList("111", "2222", "3333", "4444");

        String collect = numbers.stream().map(n -> n).collect(Collectors.joining(",'"));

        System.out.println(collect);

输出:


111,'2222,'3333,'4444


慕森王
浏览 257回答 3
3回答

互换的青春

就像这样:List<String> numbers = Arrays.asList("111", "2222", "3333", "4444");String collect = numbers.stream().map(n -> "'" + n + "'").collect(Collectors.joining(","));System.out.println(collect);

慕神8447489

为了好玩,使用 aStringBuilder和自定义收集器:String&nbsp;result&nbsp;=&nbsp;Arrays.asList("111",&nbsp;"2222",&nbsp;"3333",&nbsp;"4444") &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.stream() &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.collect(Collector.of( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuilder::new, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(sb,&nbsp;s)&nbsp;->&nbsp;sb.append('\'').append(s).append('\'').append(","), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringBuilder::append, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb&nbsp;->&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.setLength(Math.max(0,&nbsp;sb.length()&nbsp;-&nbsp;1)); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;sb.toString(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}));

慕妹3242003

String numbers = Arrays.asList("111", "2222", "3333", "4444").stream()&nbsp; &nbsp; .map(number -> "'" + number + "'")&nbsp; &nbsp; .collect(Collectors.joining(",")));这会给你"111,'2222,'3333,'4444"正如评论中所建议的那样,您也可以通过直接创建带有数字的流而不是先创建列表然后再创建流来实现。Stream.of("111", "2222", "3333", "4444")&nbsp; &nbsp; &nbsp; &nbsp; .map(number -> "'" + number + "'")&nbsp; &nbsp; &nbsp; &nbsp; .collect(Collectors.joining(",")));
随时随地看视频慕课网APP

相关分类

Java
我要回答