在 Java 中,分割字符串最常用的方法是 String.split(),此外还有 StringTokenizer、Pattern、以及手动 substring 等方式。下面按常见场景说明。
String.split()(最常用)String str = "a,b,c";
String[] arr = str.split(",");
// [a, b, c]
String str = "a,b;c d";
String[] arr = str.split("[,; ]");
String str = "a,b,c,d";
String[] arr = str.split(",", 2);
// [a, b,c,d]
String str = "a1b2c3d";
String[] arr = str.split("\\d");
// [a, b, c, d]
⚠️ 注意:
. | * + \ 等是正则特殊字符,需要转义str.split("\\."); // 按点分割
Pattern + Matcher(更灵活)适合复杂分割或性能要求高的场景:
import java.util.regex.*;
Pattern p = Pattern.compile(",");
String[] arr = p.split("a,b,c");
StringTokenizer(老方式,不推荐)StringTokenizer st = new StringTokenizer("a,b,c", ",");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
✅ 线程安全
❌ 功能不如 split 灵活(不支持正则)
String str = "12345678";
int len = 2;
for (int i = 0; i < str.length(); i += len) {
System.out.println(str.substring(i, Math.min(i + len, str.length())));
}
"a,,b".split(",")
// [a, "", b]
"a,b,".split(",")
// [a, b]
"a,b,".split(",", -1)
// [a, b, ""]
| 场景 | 推荐方式 |
|---|---|
| 普通分割 | String.split() |
| 正则分割 | Pattern.split() |
| 老代码 | StringTokenizer |
| 固定长度 | substring |
如果你有具体字符串例子(比如带空格、JSON、日志),可以直接发出来,我可以帮你写完整代码。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。