当前位置: 首页 > news >正文

StringJoiner

在日常开发中,我们经常需要把一组字符串拼接起来,比如把 [“apple”, “banana”, “cherry”] 拼成 “apple,banana,cherry”。
最原始的方式是用 + 或者 StringBuilder 循环拼接,但这种写法又长又容易出错。

从 Java 8 开始,JDK 为我们提供了一个专门的类:StringJoiner。它不仅能让代码更简洁,还能轻松加上分隔符、前缀和后缀。

1.StringJoiner的基本用法

构造方法:

// 有参构造
StringJoiner sj = new StringJoiner(delimiter);
// 添加前缀和后缀
StringJoiner sj = new StringJoiner(delimiter, prefix, suffix);
  • delimiter:分隔符,用于把元素隔开

例子:

public class Demo1 {public static void main(String[] args) {// add() 方法会自动在元素之间加上逗号和空格。StringJoiner sj = new StringJoiner(", ");sj.add("apple");sj.add("banana");sj.add("cherry");System.out.println(sj); // 输出: apple, banana, cherry}
}// 一行就能实现原来需要手写括号的功能StringJoiner sj = new StringJoiner(", ", "[", "]");sj.add("apple").add("banana").add("cherry");System.out.println(sj); // 输出: [apple, banana, cherry]

2.StringJoiner的成员方法

(1) add()

作用:向 StringJoiner 添加一个新的字符串元素。

返回值:返回当前对象本身(支持链式调用)。

例子:

StringJoiner sj = new StringJoiner(", ");
sj.add("apple").add("banana");
System.out.println(sj); // apple, banana

(2) length()

作用:返回当前 StringJoiner 拼接后字符串的长度(字符数)。

用途:如果想做长度校验,这个方法很有用。

例子:

StringJoiner sj = new StringJoiner(",");
sj.add("abc").add("de");
System.out.println(sj.length()); // 输出: 6 (abc,de)

(3) merge()

作用:把另一个 StringJoiner 的内容合并到当前对象中。

注意:保留当前对象的前缀、后缀和分隔符。

例子:

StringJoiner sj1 = new StringJoiner(", ", "[", "]");
sj1.add("a").add("b");StringJoiner sj2 = new StringJoiner(", ");
sj2.add("c").add("d");sj1.merge(sj2);
System.out.println(sj1); // [a, b, c, d]

(4) setEmptyValue()

作用:设置当 StringJoiner 为空时,调用 toString() 的返回值。

默认行为:如果不设置,空 StringJoiner 的 toString() 返回 prefix + suffix。

例子:

StringJoiner sj = new StringJoiner(", ", "[", "]");
System.out.println(sj); // 输出: []sj.setEmptyValue("空集合");
System.out.println(sj); // 输出: 空集合

(5) toString()

作用:返回拼接好的完整字符串。

注意:即使 StringJoiner 为空,它也会返回前缀+后缀,除非用过 setEmptyValue()。


文章转载自:

http://TLIm2aqd.kdgcx.cn
http://FZJtnKjD.kdgcx.cn
http://M2x5ITG4.kdgcx.cn
http://hgMUKjdJ.kdgcx.cn
http://cj8jqaVv.kdgcx.cn
http://d95FXi1m.kdgcx.cn
http://xuNGu9nH.kdgcx.cn
http://sbWGRvv4.kdgcx.cn
http://bfMhpQde.kdgcx.cn
http://wkUN4qsB.kdgcx.cn
http://T7diSVEc.kdgcx.cn
http://xPPg83Ju.kdgcx.cn
http://xDmjcAma.kdgcx.cn
http://6okjWd3a.kdgcx.cn
http://MApyMxSx.kdgcx.cn
http://BYZMeGXT.kdgcx.cn
http://QW05iV7I.kdgcx.cn
http://4LGYTZXG.kdgcx.cn
http://KM0RQ3Ap.kdgcx.cn
http://ZEzDYPe0.kdgcx.cn
http://OyWR5faA.kdgcx.cn
http://fQj7uet5.kdgcx.cn
http://KFdVdib4.kdgcx.cn
http://xgqaYIAu.kdgcx.cn
http://cf2cMkS7.kdgcx.cn
http://q9tEHhDB.kdgcx.cn
http://Ydfvj0GN.kdgcx.cn
http://yTPNJVQ5.kdgcx.cn
http://6jhIQ1p0.kdgcx.cn
http://l6NpPelC.kdgcx.cn
http://www.dtcms.com/a/378821.html

相关文章:

  • 【知识堂】制造业与物流数字化全景图:系统缩写大全与专业名词速查手册
  • 项目1——单片机程序审查,控制系统安全漏洞分析和改进建议
  • 中断上半部与中断下半部
  • 吱吱企业即时通讯以安全为基,重塑安全办公新体验
  • ctfshow_web13-----------文件上传.user.ini
  • 112. 路径总和
  • 四,基础开发工具(下)
  • Docker+jenkinsPipeline 运行实现python自动化测试
  • Android图案解锁绘制
  • 分布式事务性能优化:从故障现场到方案落地的实战手记(一)
  • JVM第一部分
  • websocket和socket io的区别
  • codebuddy ai cli安装教程
  • MySQL5.7.44保姆级安装教程
  • 正则表达式基础
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘pandas-profiling’问题
  • GRPOConfig中参数num_generations
  • 电源线束选型
  • 系统稳定性保障:研发规约V1.0
  • Day13 | Java多态详解
  • hbuilderx配置微信小程序开发环境
  • opc ua c#订阅报错【记录】
  • Caffeine 本地缓存最佳实践与性能优化指南
  • MySQL 高级特性与性能优化:深入理解函数、视图、存储过程、触发器
  • Java常见排序算法实现
  • 生产环境禁用AI框架工具回调:安全风险与最佳实践
  • Git - Difftool
  • leetcode28( 汇总区间)
  • 直击3D内容创作痛点-火山引擎多媒体实验室首次主持SIGGRAPH Workshop,用前沿技术降低沉浸式内容生成门槛
  • 鸿蒙next kit 卡片引入在线|本地图片注意事项