后台-插件-广告管理-内容页广告位一(手机)

您现在的位置是:首页 > 编程语言 > 其他编程其他编程

字符串拼接还在用String、StringBuilder?试试StringJoiner吧

2021-04-18 18:45:55其他编程人已围观

简介

StringJoiner是JDK1.8新出的一个类,用于拼接字符串时加入分隔符、前缀、后缀。不需要手动拼接这些与业务无关的符

StringJoiner是JDK1.8新出的一个类,用于拼接字符串时加入分隔符、前缀、后缀。不需要手动拼接这些与业务无关的符号,也省去处理边界问题的麻烦。

使用说明

例子:将数组中的元素拼接成以","分割的字符串

String[] strings = new String[]{"a", "b", "c"};

拼接结果:a,b,c

使用StringJoiner之前

    public static void main(String[] args) {
        String[] strings = new String[]{"a", "b", "c"};

        StringBuilder sb = new StringBuilder();
        for (String s : strings) {
            // 需要在每一次拼接后面加","
            sb.append(s).append(",");
        }
        // 拼接完后还需要将最后一个分隔符","去掉
        String substring = sb.substring(0, sb.length() - 1);

        System.out.println(substring);
    }

使用StringJoiner之后

    public static void main(String[] args) {
        String[] strings = new String[]{"a", "b", "c"};

        // 构造方法参数是分隔符","每次拼接字符串自动加上分隔符
        StringJoiner sj = new StringJoiner(",");
        for (String s : strings) {
            // 直接拼接字符串,无需处理分隔符和边界问题
            sj.add(s);
        }

        System.out.println(sj);
    }

StringJoiner介绍

StringJoiner有两个构造方法:

一个参数的构造方法,构造一个以delimiter为分隔符的StringJoiner,每次拼接字符串自动加上delimiter分隔符

    public StringJoiner(CharSequence delimiter) {
        this(delimiter, "", "");
    }

三个参数的构造方法,构造一个以delimiter为分隔符的StringJoiner,并且在最终的结果字符串上拼接prefix前缀和suffix后缀。

    public StringJoiner(CharSequence delimiter,
                        CharSequence prefix,
                        CharSequence suffix) {
        Objects.requireNonNull(prefix, "The prefix must not be null");
        Objects.requireNonNull(delimiter, "The delimiter must not be null");
        Objects.requireNonNull(suffix, "The suffix must not be null");
        // make defensive copies of arguments
        this.prefix = prefix.toString();
        this.delimiter = delimiter.toString();
        this.suffix = suffix.toString();
        this.emptyValue = this.prefix + this.suffix;
    }

add方法

    public StringJoiner add(CharSequence newElement) {
        prepareBuilder().append(newElement);
        return this;
    }
    private StringBuilder prepareBuilder() {
        if (value != null) {
            value.append(delimiter);
        } else {
            value = new StringBuilder().append(prefix);
        }
        return value;
    }

最终是调用的StringBuilder的append方法

    public StringBuilder append(CharSequence s) {
        super.append(s);
        return this;
    }

 

文章来源:查看

Tags:字符串   java   string  

很赞哦! ()

后台-插件-广告管理-内容页广告位二(手机)

相关文章

后台-插件-广告管理-内容页广告位三(手机)

随机图文

后台-插件-广告管理-内容页广告位四(手机)

文章评论

留言与评论(共有 0 条评论)
   
验证码:

本栏推荐

站点信息

  • 文章统计13614篇文章
  • 浏览统计468次浏览
  • 评论统计1个评论
  • 标签管理标签云
  • 统计数据:统计代码
  • 微信公众号:扫描二维码,关注我们