文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java中StringJoiner工具的使用方法

2023-06-15 01:04

关注

这篇文章将为大家详细讲解有关Java中StringJoiner工具的使用方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

背景

在平时的业务开发中,我们可能会遇到字符串列表根据分隔符进行拼接的需求。比如:

输入:

数组:[“a”,“b”,“c”]分隔符:","

输出:

“a,b,c”

处理

通常我们可以使用StringBuilder根据下标位置决定是否需要添加分隔符以达到目的,比如:

public static void main(String[] args) {        StringBuilder sb = new StringBuilder();        String[] strings = new String[]{"a", "b", "c"};        String delimiter = ",";        for (int i = 0; i < strings.length; i++) {            if (i != 0) {                sb.append(delimiter);            }            sb.append(strings[i]);        }        System.out.println(sb.toString());    }

或者:

public static void main(String[] args) {        StringBuilder sb = new StringBuilder();        String[] strings = new String[]{"a", "b", "c"};        String delimiter = ",";        int tmp = strings.length - 1;        for (int i = 0; i < strings.length; i++) {            sb.append(strings[i]);            if (i != tmp) {                sb.append(delimiter);            }        }        System.out.println(sb.toString());    }

但是每次遇到这种情况都去这样拼接很麻烦,而且如果使用迭代器,没有下标就不能使用这种方法。那么就每次append分隔符,最后再截断:

public static void main(String[] args) {        StringBuilder sb = new StringBuilder();        String[] strings = new String[]{"a", "b", "c"};        String delimiter = ",";        for (String str:strings) {            sb.append(str).append(delimiter);        }        System.out.println(sb.substring(0,sb.length()-1));    }

所以通常情况下,我们都会去扩展一个StringBuilder以提供分隔符组装的功能,博主平时是这样弄的:

public class MyStringBuilder {    private StringBuilder stringBuilder;    private String delimiter;    public MyStringBuilder(String delimiter) {        this.delimiter = delimiter;    }    public MyStringBuilder append(String item) {        getStringBuilder().append(item);        return this;    }        private StringBuilder getStringBuilder() {        if (stringBuilder == null) {            //相当于index==0,            stringBuilder = new StringBuilder();        } else {            stringBuilder.append(delimiter);        }        return stringBuilder;    }    @Override    public String toString() {        return stringBuilder == null ? "" : stringBuilder.toString();    }}

  在初始化的时候指定分隔符,然后每次直接append就行了,由内部决定在何时添加分隔符。
  在JDK1.8之后,提供了一个StringJoiner类,提供了类似的功能,可以在初始化的时候指定分隔符和前缀后缀:

StringJoiner sj = new StringJoiner(",","(",")");sj.add("a").add("b").add("c");System.out.println(sj.toString());//输出:(a,b,c)

博主大致看了一下StringJoiner的实现逻辑,很简单,和咱们扩展StringBuilder基本是一样的逻辑,另外加入了前缀后缀,然后多了一个merge的功能:

public StringJoiner merge(StringJoiner other) {        Objects.requireNonNull(other);        if (other.value != null) {            final int length = other.value.length();            // lock the length so that we can seize the data to be appended            // before initiate copying to avoid interference, especially when            // merge 'this'            StringBuilder builder = prepareBuilder();            builder.append(other.value, other.prefix.length(), length);        }        return this;    }

Java可以用来干什么

Java主要应用于:1. web开发;2. Android开发;3. 客户端开发;4. 网页开发;5. 企业级应用开发;6. Java大数据开发;7.游戏开发等。

关于“Java中StringJoiner工具的使用方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

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

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

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

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

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

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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