- 去掉所有空格(包括单词中间的)
- 去掉首尾空格(最常见的需求)
- 去掉所有空白字符(如空格、制表符
\t、换行符\n等)
下面我将详细介绍每种情况下的最佳实践。

去掉字符串中所有的空格
如果你想把字符串里所有的空格(包括单词之间的)都去掉,可以使用 String 类的 replace() 方法。
使用 String.replace()
这是最简单直接的方法,它会替换掉所有匹配的字符。
public class TrimAllSpaces {
public static void main(String[] args) {
String str = " Hello Java World! ";
// 使用 replace() 方法,将所有空格 " " 替换为空字符串 ""
String result = str.replace(" ", "");
System.out.println("原始字符串: '" + str + "'");
System.out.println("去掉所有空格后: '" + result + "'");
// 输出: 'HelloJavaWorld!'
}
}
特点:
- 简单易用:直接调用
replace即可。 - 功能明确:专门用于替换字符。
去掉字符串首尾的空格
这是最常见的需求,例如处理用户输入时,去除多余的空格,Java 提供了专门的方法。

使用 String.trim() (最推荐)
trim() 方法是专门用来去掉字符串首尾的空白字符(包括空格、\t、\n 等)的。
public class TrimExample {
public static void main(String[] args) {
String str = " Hello Java World! ";
// 使用 trim() 方法
String result = str.trim();
System.out.println("原始字符串: '" + str + "'");
System.out.println("去掉首尾空格后: '" + result + "'");
// 输出: 'Hello Java World!'
}
}
特点:
- 最常用:专门为去除首尾空白设计。
- 效率高:底层实现经过优化。
- 功能更强:不仅能去掉空格,还能去掉
\t,\n,\r,\f等其他空白字符。
使用 String.strip() (Java 11+)
如果你使用的是 Java 11 或更高版本,可以使用 strip() 方法,它的功能和 trim() 非常相似,但能更好地处理 Unicode 标准中的空白字符。
// 需要 Java 11 或更高版本
public class StripExample {
public static void main(String[] args) {
String str = " Hello Java World! ";
String result = str.strip();
System.out.println("原始字符串: '" + str + "'");
System.out.println("使用 strip() 后: '" + result + "'");
// 输出: 'Hello Java World!'
}
}
trim() vs strip() 的区别:

trim()主要基于 ASCII 码定义空白字符。strip()基于 Unicode 标准,能处理更多种类的空白字符(如全角空格等),在绝大多数情况下,两者效果相同。
去掉所有空白字符(不仅仅是空格)
如果你想去掉所有类型的空白字符,包括空格、制表符 (\t)、换行符 (\n)、回车符 (\r) 等,可以使用正则表达式。
使用 String.replaceAll()
使用正则表达式 \s 可以匹配任何空白字符。
public class TrimAllWhitespace {
public static void main(String[] args) {
String str = " Hello\tJava\nWorld! ";
// 使用正则表达式 \s 匹配所有空白字符,并替换为空字符串
String result = str.replaceAll("\\s", "");
System.out.println("原始字符串: '" + str + "'");
System.out.println("去掉所有空白字符后: '" + result + "'");
// 输出: 'HelloJavaWorld!'
}
}
注意: 在 Java 字符串中,反斜杠 \ 是一个转义字符,所以表示正则表达式中的 \s 需要写成 "\\s"。
使用 String.replace() (仅限空格)
如果你只想去掉空格,但不想用正则表达式,replace() 也是一个好选择,因为它不会引入正则表达式的复杂性。
String str = " Hello\tJava\nWorld! ";
String result = str.replace(" ", ""); // 只会替换空格,不会替换 \t 或 \n
System.out.println(result); // 输出: "Hello\tJava\nWorld!"
总结与最佳实践
| 需求场景 | 推荐方法 | 示例代码 | 备注 |
|---|---|---|---|
| 去掉所有空格 | String.replace(" ", "") |
str.replace(" ", "") |
简单直接,性能好。 |
| 去掉首尾空格 | String.trim() |
str.trim() |
最常用,专门为此设计。 |
| 去掉所有空白字符 | String.replaceAll("\\s", "") |
str.replaceAll("\\s", "") |
功能强大,能处理 \t, \n 等。 |
| Java 11+ 去掉首尾空格 | String.strip() |
str.strip() |
trim() 的现代替代品,Unicode 感知。 |
一个完整的示例,展示不同方法的效果:
public class AllTrimMethods {
public static void main(String[] args) {
String originalStr = " Hello \t Java \n World! ";
System.out.println("原始字符串: '" + originalStr + "'");
System.out.println("------------------------------------");
// 1. 去掉所有空格 (保留 \t 和 \n)
String allSpacesRemoved = originalStr.replace(" ", "");
System.out.println("去掉所有空格: '" + allSpacesRemoved + "'");
// 2. 去掉首尾空格 (也去掉 \t 和 \n)
String trimmed = originalStr.trim();
System.out.println("去掉首尾空白: '" + trimmed + "'");
// 3. 去掉所有空白字符
String allWhitespaceRemoved = originalStr.replaceAll("\\s", "");
System.out.println("去掉所有空白: '" + allWhitespaceRemoved + "'");
// 4. Java 11+ 使用 strip()
if (!originalStr.strip().equals(originalStr.trim())) {
System.out.println("strip() 和 trim() 结果不同。");
} else {
System.out.println("strip() 结果: '" + originalStr.strip() + "'"); // 和 trim() 一样
}
}
}
输出结果:
原始字符串: ' Hello Java
World! '
------------------------------------
去掉所有空格: 'Hello Java
World!'
去掉首尾空白: 'Hello Java
World!'
去掉所有空白: 'HelloJavaWorld!'
strip() 结果: 'Hello Java
World!'
根据你的具体需求,选择最合适的方法即可,在绝大多数业务场景中,trim() 是最常用和最正确的选择。
