String.split()基于正则表达式拆分字符串,需转义元字符如. | [ ]等,使用limit参数可控制结果长度和空字符串处理。

Java 中 String.split() 是最常用、最直接的字符串拆分方法,它基于正则表达式匹配分隔符,返回字符串数组。关键在于正确理解其参数行为和常见陷阱。
基本用法:传入简单分隔符
当分隔符是普通字符(如逗号、空格、竖线等),可直接传入字符串字面量:
-
"a,b,c".split(",")→["a", "b", "c"] -
"one two three".split("\s+")→["one", "two", "three"](\s+匹配一个或多个空白符) -
"file.txt".split("\.")→["file", "txt"](注意点号.是正则元字符,必须转义为\.)
处理特殊字符:正则元字符要转义
以下字符在正则中有特殊含义:. | [ ] { } ( ) * + ? ^ $ 。若想按字面意义拆分,必须加双反斜杠转义:
- 按竖线
|拆分:"a|b|c".split("\|") - 按方括号拆分:
"[1][2]".split("\[|\]")→["", "1", "2", ""](注意前后空字符串) - 按反斜杠拆分:
"path\to\file".split("\\")(Java 字符串中一个\表示一个反斜杠,正则中还需再转义,所以写成\\)
控制结果长度:使用 limit 参数避免尾部空项
split(String regex, int limit) 的第二个参数控制拆分次数上限:
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
-
limit > 0:最多生成limit个元素;若实际能拆出更多,最后一个是剩余全部内容 -
limit = 0(默认行为):丢弃末尾空字符串(如"a,,b,".split(",")→["a", "", "b"]) limit :不限制次数,且保留所有空字符串("a,,b,".split(",", -1)→["a", "", "b", ""])
注意 null 和空字符串输入
split() 不处理 null 字符串,调用会抛 NullPointerException;空字符串 "" 调用 split("x") 返回 [""](长度为 1 的数组)。
建议使用前做非空校验:
if (str != null) { String[] parts = str.split(","); }- 若需兼容空值,可封装工具方法统一返回空数组或默认值
掌握转义规则、合理使用 limit 参数、提前校验输入,就能稳定高效地完成绝大多数字符串拆分任务。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










