文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java中字符串占位替换、字符串拼接、字符串与Collection互转的方式

2023-09-03 12:57

关注

场景

字符串占位替换

String.format

最原始最基础的方式。

使用%来表示占位,后面跟上不同的标识符,用于限定这个占位符的参数类型,由jdk原生提供支持。

示例:

        String badao = String.format("hello:%s", "badao");        System.out.println(badao);

MessageFormat

如果遇到一个参数需要替换模板中多个占位的场景,更友好的方式是MessageFormat,由jdk原生提供支持。

示例:

        String message = MessageFormat.format("hello:{0},your name is {0},your class is {1}","badao","class1");        System.out.println(message);

字符串拼接

举例:将int数组转为英文逗号分割的字符串为例

首先初始化一个int数组

        List integerList = new ArrayList(){{            add(1);            add(2);            add(3);        }};

StringBuilder来拼接

        StringBuilder stringBuilder = new StringBuilder();        for (Integer i:integerList) {            stringBuilder.append(i).append(",");        }        String substring = stringBuilder.substring(0, stringBuilder.length() - 1);        System.out.println(substring);

StringJoiner 由jdk1.8提供

        String collect = integerList.stream().map(String::valueOf).collect(Collectors.joining(","));        System.out.println(collect);

如果使用的jdk不是1.8版本,还可使用guava的joiner

        String join = Joiner.on(",").join(integerList);        System.out.println(join);

注:

博客:
霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主

字符串与Collection的互转

字符串转列表

字符串先转数组,然后再数组转列表

通过Arrays.asList

        String[] cells = "a,b,c".split(",");        List stringList = Arrays.asList(cells);        System.out.println(stringList);

通过Collections.addAll

        List list1 = new ArrayList<>();        Collections.addAll(list1,"a,b,c,d".split(","));        System.out.println(list1);

如果希望转成int列表

        List collect = Stream.of("1, ,2 ,3,4".split(","))                .map(String::trim)                .filter(s -> !s.isEmpty())                .map(Integer::valueOf)                .collect(Collectors.toList());        System.out.println(collect);

通过guava的方式

通过guava的Splitter.on().splitToList

        List stringList1 = Splitter.on(",").splitToList("a,b,c,d,e");        System.out.println(stringList1);

直接转换成流可以使用splitToStream

        List collect1 = Splitter.on(",").splitToStream("1, ,2 ,3,4")                .map(String::trim)                .filter(s -> !s.isEmpty())                .map(Integer::valueOf)                .collect(Collectors.toList());        System.out.println(collect1);

列表转字符串

通过StringBuilder

        StringBuilder builder = new StringBuilder();        for (String str:stringList1){            builder.append(str).append(",");        }        //最后一个拼接符号不要        String substring = builder.substring(0, builder.length() - 1);        System.out.println(substring);//a,b,c,d,e

通过String.join

缺点是列表必须是字符串列表,如果换成int列表则不行

        String join = String.join(",", stringList1);        System.out.println(join);//a,b,c,d,e

guava提供的Joiner  没有列表类型的限制

        String join1 = Joiner.on(",").join(stringList1);        System.out.println(join1);

来源地址:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/130965385

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯