在 Java 中,可以使用 String.split() 方法以空格分割字符串,以下是几种常见情况的示例和说明:

基本用法:按单个空格分割
String str = "hello world java";
String[] parts = str.split(" "); // 使用单个空格作为分隔符
for (String part : parts) {
System.out.println(part);
}
输出:
hello
world
java
处理连续空格(多个空格)
如果字符串中有连续空格,直接使用 split(" ") 会得到空字符串()。
String str = "hello world java"; // 三个连续空格
String[] parts = str.split(" ");
for (String part : parts) {
System.out.println("[" + part + "]"); // 用方括号标记空字符串
}
输出:
[hello]
[]
[]
[world]
[java]
解决方案:使用 split("\\s+")
\s 匹配任何空白字符(空格、制表符、换行等), 表示一个或多个:

String str = "hello world java";
String[] parts = str.split("\\s+"); // 匹配一个或多个空白字符
for (String part : parts) {
System.out.println(part);
}
输出:
hello
world
java
去除首尾空格后再分割
如果字符串首尾有空格,可以先使用 trim() 去除:
String str = " hello world java ";
String[] parts = str.trim().split("\\s+");
for (String part : parts) {
System.out.println(part);
}
输出:
hello
world
java
使用 StringTokenizer(旧方法)
Java 早期版本中,StringTokenizer 也用于分割字符串(但已不推荐,功能有限):

StringTokenizer tokenizer = new StringTokenizer("hello world java");
while (tokenizer.hasMoreTokens()) {
System.out.println(tokenizer.nextToken());
}
输出:
hello
world
java
正则表达式注意事项
split(" "):仅按单个空格分割。split("\\s+"):按一个或多个空白字符分割(推荐)。split("\\s"):按每个空白字符分割(包括单个空格、制表符等)。
| 需求 | 推荐方法 | 示例 |
|---|---|---|
| 按单个空格分割 | split(" ") |
"a b".split(" ") → ["a", "b"] |
| 按连续空格分割 | split("\\s+") |
"a b".split("\\s+") → ["a", "b"] |
| 去除首尾空格后分割 | trim().split("\\s+") |
" a b ".trim().split("\\s+") → ["a", "b"] |
根据实际需求选择合适的方法!
