Java 8 Util API: StringJoiner 详解

  • StringJoiner(CharSequence d)
  • StringJoiner.add(CharSequence element)
  • StringJoiner(CharSequence d, CharSequence p, CharSequence s)
  • StringJoiner.merge(StringJoiner other)
  • StringJoiner.length()
  • 参考文献

java 8中引入了 java.util.StringJoiner

StringJoiner是一种使用所需分隔符构造字符串的util方法。

如果需要,我们还可以在最后一个字符串中添加前缀和后缀。

为了实现这一点,StringJoiner有两个构造函数,第一个只有分隔符,第二个有分隔符、前缀和后缀。

我们可以合并两个StringJoiner

找到描述和例子。

StringJoiner(CharSequence d)

此构造函数使用分隔符分隔添加的元素。

StringJoiner.add(CharSequence element)

StringJoiner.add方法向其添加元素。

我们需要每次调用add方法作为要添加的元素数。

StringJoinerDemoOne.java

import java.util.StringJoiner;
public class StringJoinerDemoOne {public static void main(String[] args) {StringJoiner sj = new StringJoiner("-");sj.add("Ram");System.out.println(sj);sj.add("Shyam").add("Mohan");System.out.println(sj);}
}

输出

Ram
Ram-Shyam-Mohan

StringJoiner(CharSequence d, CharSequence p, CharSequence s)

这个构造函数也需要前缀和后缀来添加。前缀和后缀不取决于添加元素的数量。

StringJoiner.merge(StringJoiner other)

我们可以合并两个StringJoiner

将会有一个主要的StringJoiner,另一个StringJoiner将被添加到其中。

另一个StringJoiner在被添加到主StringJoiner时不会带来其前缀和后缀。

StringJoiner.length()

StringJoiner.length()像普通的字符串长度方法一样获得长度。

StringJoinerDemoTwo.java

import java.util.StringJoiner;
public class StringJoinerDemoTwo {public static void main(String[] args) {StringJoiner sjObj = new StringJoiner(",", "{", "}");//Add ElementsjObj.add("AA").add("BB").add("CC").add("DD").add("EE");String output = sjObj.toString();System.out.println(output);//Create another StringJoinerStringJoiner otherSj = new StringJoiner(":", "(", ")");otherSj.add("10").add("20").add("30");System.out.println(otherSj);//Use StringJoiner.merge(StringJoiner o)StringJoiner finalSj = sjObj.merge(otherSj);System.out.println(finalSj);//get length using StringJoiner.length()System.out.println("Length of Final String:"+finalSj.length());}
}

输出

{AA,BB,CC,DD,EE}
(10:20:30)
{AA,BB,CC,DD,EE,10:20:30}
Length of Final String:25

参考文献

【1】Java 8 Util API: StringJoiner Example

【Java 8 新特性】Java 8 Util API: StringJoiner 详解 | 拼接字符串添加分隔符、前缀和后缀相关推荐

  1. Android M新特性Doze and App Standby模式详解

    转载请标明出处:http://blog.csdn.net/xx326664162/article/details/52312122 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定的 ...

  2. java双冒号_jdk8新特性之双冒号 :: 用法及详解

    jdk8的新特性有很多,最亮眼的当属函数式编程的语法糖,本文主要讲解下双冒号::的用法. 概念 类名::方法名,相当于对这个方法闭包的引用,类似js中的一个function.比如: Function ...

  3. mysql 双冒号_jdk8新特性之双冒号 :: 用法及详解

    jdk8的新特性有很多,最亮眼的当属函数式编程的语法糖,本文主要讲解下双冒号::的用法. 概念 类名::方法名,相当于对这个方法闭包的引用,类似js中的一个function.比如: Function  ...

  4. Servlet3.0新特性WebFilter(Annotation Filter)详解

    摘要: Servlet3.0作为J2EE 6规范一部分,并随J2EE6一起发布,WeFilter是过滤器注解,是Servlet3.0的新特性,不需要在web.xml进行配置,简化了配置. Name T ...

  5. java 8 新特性之日期-时间 API

    Date-Time API简介 在Java8之前的版本中,我们处理时间类型常常使用的是java.util包下的Date类.但使用Date类却有诸多的弊端,如: java.util.Date 是非线程安 ...

  6. ES5总结1:数组Array新特性最全最精简的详解

    2个位置方法:indexOf  lastIndexOf 5个迭代方法:forEach       every  some       filter  map 2个高阶函数:reduce  reduce ...

  7. C++11新特性之变长参数模板详解

    本文主要介绍了C++11变长参数模板,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 目录 C++11 变长参数模板 变长函数参数 ...

  8. concat 不是可以识别的 内置函数名称。_新特性解读 | MySQL 8.0 窗口函数详解

    背景 一直以来,MySQL 只有针对聚合函数的汇总类功能,比如MAX, AVG 等,没有从 SQL 层针对聚合类每组展开处理的功能.不过 MySQL 开放了 UDF 接口,可以用 C 来自己写UDF, ...

  9. Java 10新特性

    Java 10新特性 Java 10是其23年历史中最快的java版本.Java因其缓慢的增长和发展而受到批评,但Java 10刚刚破坏了这一概念.Java 10是一个具有许多未来变化的版本,其范围和 ...

最新文章

  1. 如何回答十个最棘手的面试问题(下)
  2. 2017-2018-1 《信息安全系统设计基础》实验三报告
  3. 快速失败(fail-fast)和安全失败(fail-safe)
  4. 学习笔记(50):Python实战编程-Frame
  5. 【clickhouse】基于ClickHouse的海量数据交互式OLAP分析场景实践
  6. CodeVs天梯黄金Gold题解
  7. IE游览器的扩展事件
  8. 三菱plc pwm指令_常用PLC各系列简介大全,选型必看!
  9. 点分十进制转32位二进制数组
  10. 软件开发过程与需求获取
  11. Mac设置鼠标滚轮方向
  12. 腾讯云函数转华为云函数
  13. Android--APK 捆绑器的实现
  14. SAP的增强(enhancement)
  15. 能“干掉”苹果的中国“黑客”
  16. onlyoffice mysql_Onlyoffice部署文档
  17. hihoCoder1378:网络流二·最大流最小割定理
  18. 【Android】蓝牙开发——经典蓝牙:配对与解除配对 实现配对或连接时不弹出配对框
  19. 刘宇辰java_大家帮忙取名字啊
  20. java rgb565_java将图片(jpg/bmp/png)转16位bmp(RBG565)

热门文章

  1. mac连接有线宽带的心路历程
  2. 打印机的系统是linux吗,Linux系统下打印机怎样配置?
  3. 查看mysql版本的六种方法
  4. 这一辈子没法做太多的事情,所以每一件都要做得精彩绝伦
  5. 计算机要学ps,电脑小白,该如何从零开始学习PS?顺利走上接单道路
  6. ROS2学习笔记(十)-- ROS2 launch启动文件
  7. 时延(delay 或 latency)
  8. HTAP数据库:Hubble释放物联网数据潜能
  9. 业余程序员余流 - 杂谈 之 《每个人都有自己的选择》
  10. 【转载】数字图像处理相关