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

StringJoiner

// 遍历Map并输出(基础版)
for (Map.Entry<String, List<String>> entry : hm.entrySet()) {String key = entry.getKey();List<String> value = entry.getValue();System.out.println(key + "=" + value); // 直接输出列表默认格式
}// 结合StringJoiner拼接(进阶版)
for (Map.Entry<String, List<String>> entry : hm.entrySet()) {String key = entry.getKey();List<String> cities = entry.getValue();StringJoiner sj = new StringJoiner("|", "{", "}"); // 分隔符、前缀、后缀for (String city : cities) {sj.add(city);}System.out.println(key + "=" + sj); 
}
=== 基础版:直接输出列表默认格式 ===
广东省=[广州, 深圳, 珠海]
江苏省=[南京, 苏州, 无锡]=== 进阶版:使用StringJoiner自定义格式 ===
广东省={广州|深圳|珠海}
江苏省={南京|苏州|无锡}

        StringJoiner 是 Java 8 引入的一个用于拼接字符串的工具类,位于 java.util 包下。它可以更方便地将多个字符串按照指定的分隔符拼接在一起,并且还可以添加前缀和后缀。

基本用法

创建 StringJoiner 对象

可以通过以下两种方式创建 StringJoiner 对象:

        只指定分隔符:

StringJoiner joiner = new StringJoiner(",");

        指定分隔符、前缀和后缀:

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

这里的 "," 是分隔符,"[" 是前缀,"]" 是后缀。

添加元素

使用 add 方法向 StringJoiner 中添加元素:

joiner.add("Apple").add("Banana").add("Orange");
获取拼接结果

使用 toString 方法获取最终拼接的字符串:

String result = joiner.toString();

示例代码

import java.util.StringJoiner;
public class StringJoinerExample {public static void main(String[] args) {// 创建一个带有分隔符、前缀和后缀的 StringJoinerStringJoiner joiner = new StringJoiner(",", "[", "]");// 添加元素joiner.add("Apple").add("Banana").add("Orange");// 获取拼接结果String result = joiner.toString();System.out.println(result);}
}

输出结果为:

[Apple,Banana,Orange]

常用方法

  1. add(CharSequence newElement):添加一个元素到 StringJoiner 中。
  2. merge(StringJoiner other):将另一个 StringJoiner 的内容合并到当前 StringJoiner 中。
  3. setEmptyValue(CharSequence emptyValue):设置当 StringJoiner 为空时返回的字符串。
  4. length():返回拼接后字符串的长度。

示例代码(包含常用方法)

import java.util.StringJoiner;
public class StringJoinerMethodsExample {public static void main(String[] args) {StringJoiner joiner1 = new StringJoiner(",");joiner1.add("A").add("B");StringJoiner joiner2 = new StringJoiner("-");joiner2.add("1").add("2");// 合并两个 StringJoinerjoiner1.merge(joiner2);System.out.println(joiner1.toString());// 设置空值StringJoiner emptyJoiner = new StringJoiner(",");emptyJoiner.setEmptyValue("Empty");System.out.println(emptyJoiner.toString());// 获取长度System.out.println(joiner1.length());}
}

输出结果为:

A,B,1-2
Empty
7

与 StringBuilder 的比较

        虽然 StringBuilder 也可以用于字符串拼接,但 StringJoiner 在处理带有分隔符的拼接时更加简洁和直观。例如,如果要拼接一个字符串列表,使用 StringJoiner 可以避免手动处理分隔符的位置问题。

http://www.xdnf.cn/news/16574.html

相关文章:

  • 【Lua】元表常用属性
  • STM32CubeIDE新建项目过程记录备忘(二) GPIO输出demo:LED闪烁
  • 【读论文】Step-Audio 2 深度解读:迈向工业级语音交互的「全能型选手」
  • 【AlphaFold3】网络架构篇(7)| 详解Diffusion training set-up
  • Apache Ignite 2.8 引入的新指标系统(New Metrics System)的完整说明
  • 轻松打造Unity小游戏AR体验
  • Map 集合
  • 适配鸿蒙低性能设备的终极优化方案:从启动到渲染全链路实战
  • IBus vs. Fcitx5:一场 Linux 输入法框架的正面交锋
  • Redis:缓存雪崩、穿透、击穿的技术解析和实战方案
  • HTTPS基本工作过程:基本加密过程
  • 河南萌新联赛2025第(三)场:河南理工大学【补题】
  • 2025最新版Node.js下载安装及环境配置教程【超详图文】
  • BGP高级特性之正则表达式
  • DFT不同维度中gate、cell、instance介绍
  • 智能体产品化的关键突破:企业智能化转型的“最后一公里”如何迈过?
  • Spring Cloud Gateway Server Web MVC报错“Unsupported transfer encoding: chunked”解决
  • Jupyter Notebook安装使用
  • WebRTC核心组件技术解析:架构、作用与协同机制
  • Java容器化实践:Docker+K8s部署Spring Boot应用全流程
  • LLM—— 基于 MCP 协议(Streamable HTTP 模式)的工具调用实践
  • 《设计模式之禅》笔记摘录 - 11.策略模式
  • 二叉树的学习
  • 【Java】批量生成Excel放入文件夹并打zip压缩包
  • 八种AI记忆术,重构智能体的“大脑”
  • RFID 系统行业前沿洞察:技术跃迁与生态重构
  • 线性代数常见的解题方法
  • aws(学习笔记第五十课) ECS集中练习(2)
  • 【MySQL 数据库】MySQL索引特性(二)页目录(B和B+树)(非)聚簇索引 索引操作
  • APM32芯得 EP.27 | 告别IDE,为APM32F411打造轻量级命令行开发工作流