java中字符串拆分与合并最推荐使用string.split()和string.join():split()以正则为分隔符需转义特殊字符,join()是jdk 8+内置高效方法,避免使用已废弃的stringtokenizer或手动拼接。

Java 中对 String 按指定分隔符拆分与合并,最常用、最推荐的方式是使用 String.split() 和 String.join(),它们简洁、安全、无需额外依赖。
按分隔符拆分字符串(split)
split(String regex) 接收一个正则表达式作为分隔符,返回 String[] 数组。注意:分隔符是正则,不是普通字符串,特殊字符(如 .、|、+、*、?、[、] 等)需转义。
- 简单分隔(字母/数字等普通字符):
"a,b,c".split(",") → ["a", "b", "c"] - 点号
.需写成"\.":"192.168.1.1".split("\.") → ["192", "168", "1", "1"] - 竖线
|需写成"\|":"x|y|z".split("\|") - 多个空白符(空格、制表符、换行等):
str.split("\s+") - 限制拆分次数(避免过度分割):
"a:b:c:d".split(":", 3) → ["a", "b", "c:d"]
按分隔符合并字符串(join)
String.join(CharSequence delimiter, Iterable extends CharSequence> elements) 或 String.join(CharSequence delimiter, CharSequence... elements) 是 JDK 8+ 内置方法,安全高效。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 合并数组:
String.join("-", new String[]{"a", "b", "c"}) → "a-b-c" - 合并 List:
List<string> list = Arrays.asList("x", "y", "z"); String.join(",", list)</string> - 空元素会被保留(不会跳过 null):
String.join(":", "a", null, "c") → "a:null:c";如需过滤 null,先用stream().filter(Objects::nonNull).toArray()
注意事项与替代方案
避免使用已废弃或不推荐的方式:
- 不要用
StringTokenizer(遗留类,不支持正则,功能弱,已不推荐) - 不要手动遍历拼接(低效易错),也不要用
StringBuilder循环加分隔符来“模拟 join” - 若需更复杂的拆分逻辑(如忽略引号内分隔符、支持转义),可考虑 Apache Commons Lang 的
StringUtils.splitPreserveAllTokens()或Splitter(Guava),但基础场景无需引入依赖 - 拆分后注意空字符串处理:
"a,,b".split(",")默认会去掉末尾空串,但中间的空串保留 →["a", "", "b"];如需保留所有空项(包括结尾),用split(",", -1)
不复杂但容易忽略细节,掌握 split 的正则本质和 join 的便捷性,就能覆盖绝大多数字符串分合需求。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










