为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕森王 2021-10-17 15:54:43
我是Java 8 的新手,希望仅在 Java 8 中实现以下功能。我有以下号码1111222233334444我想转换所有这些数字,如 '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
查看完整描述

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);


查看完整回答
反对 回复 2021-10-17
?
慕神8447489

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();
                    }));


查看完整回答
反对 回复 2021-10-17
?
慕妹3242003

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(",")));


查看完整回答
反对 回复 2021-10-17
  • 3 回答
  • 0 关注
  • 252 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信