zoukankan      html  css  js  c++  java
  • StringJoiner 使用

    StringJoiner 基本使用

    1. StringBuffer 拼接

    StringBuilder sb = new StringBuilder();

    sb.append("hello");

    sb.append(",");

    sb.append("world");

    sb.append(",");

    sb.append("Java程序员");

    String str = sb.toString(); //输出: hello,world,Java程序员

    System.out.println("str :" + str);

    可以看到这里需要拼接多次"," 。

    2. StringJoiner 拼接

    StringJoiner sj = new StringJoiner(",");

    sj.add("hello");

    sj.add("world");

    sj.add("Java程序员");

    String str = sj.toString(); //输出: hello,world,Java程序员

    System.out.println("str :" + str);

    可以看到这里不需要拼接多次"," 。

    StringJoiner 介绍

    1. 类结构图

    1. 成员变量

    private final String prefix; //拼接后的字符串前缀

    private final String delimiter; //拼接时的字符串分隔符

    private final String suffix; //拼接后的字符串后缀

    private StringBuilder value; /* StringBuilder存储,拼接后的值。 */

    private String emptyValue; //空值的情况,value为 null 时返回

    1. 构造方法

    两个构造方法,一个必须带分隔符,

    另一个必须带分隔符、前缀、后缀,其中 emptyValue 默认为前缀+后缀组成。

    1. 公开方法

    • setEmptyValue:设置空值
    • toString:转换成 String
    • add:添加字符串
    • merge:从另一个 StringJoiner 合并
    • length:长度(包括前缀后缀)
    1. 流式 API

    add 方法源码

    用 StringBuilder 进行封装的,首次创建会先拼接前缀,后续先添加分隔符,再添加字符串。

    使用Demo

    StringJoiner sj1 = new StringJoiner(",").add("hello").add("world").add("Java程序员");

    System.out.println(sj1);

    6.前后缀拼接

    StringJoiner sj2 = new StringJoiner(",", "[", "]");

    sj2.add("hello");

    sj2.add("world");

    sj2.add("Java程序员");

    String str2 = sj2.toString();

    7.空值处理

    中间拼接null

    // 如果add null,则会输出null,所以,如果add前需要判空

    StringJoiner sj1 = new StringJoiner(",")

    .add("hello")

    .add(null)

    .add("Java程序员");

    System.out.println(sj1); //输出: hello,null,Java程序员

    输出指定字符串

    // 如果没有拼接的value,会输出emptyValue的值; 如果value有值 是不会输出emptyValue的值

    StringJoiner sj0 = new StringJoiner(",", "[", "]");

    sj0.setEmptyValue("没有值,设置默认空值!!!");

    System.out.println(sj0.toString()); //输出: 没有值,设置默认空值!!!

     

    StringJoiner sj1 = new StringJoiner(",")

    .add("hello")

    .add("Java程序员");

    sj1.setEmptyValue("没有值,设置默认空值!!!");

    System.out.println(sj1.toString()); //hello,Java程序员

    String.join()

    源码介绍

    String针对 StringJoiner 又封装了一层的 API,可以传入动态参数或者迭代器。

    使用示例

    String sj1 = String.join(",", "hello", "Java程序员");

    System.out.println(sj1); //输出: hello,Java程序员

     

    List<String> strings = new LinkedList<>();

    strings.add("Java");

    strings.add("is");

    strings.add("cool");

    String message = String.join(" ", strings);

    System.out.println(message); //输出: Java is cool

    总结

    开发人员可以根据需要选择合适的方式拼接。

     

    参考: https://mp.weixin.qq.com/s/5Ehe_V_1sTy4QV7M-y-P0A

  • 相关阅读:
    做事的底线和逻辑
    我在华为的十年----徐家俊
    华为的冬天
    如何当好一个师长--林彪
    Base64 的那些事儿
    流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
    软件目的需求开发与管理
    车载行业认证资质
    tcpdump抓包分析 https://www.01hai.com/note/av263669
    packages.conifg
  • 原文地址:https://www.cnblogs.com/coloz/p/14197241.html
Copyright © 2011-2022 走看看