在 Java 中,你可以使用 String 类提供的 trim() 方法来去掉字符串前后的空格(包括空格、制表符 \t、换行符 \n 等空白字符)。

使用 trim() 方法(最常用)
trim() 方法会返回一个新的字符串,该字符串去除了原字符串开头和结尾的空白字符,原字符串本身不会被修改。
public class TrimExample {
public static void main(String[] args) {
String originalStr = " Hello, World! ";
// 使用 trim() 去除前后空格
String trimmedStr = originalStr.trim();
System.out.println("原始字符串: '" + originalStr + "'");
System.out.println("去除空格后: '" + trimmedStr + "'");
// 输出结果:
// 原始字符串: ' Hello, World! '
// 去除空格后: 'Hello, World!'
}
}
trim() 方法的注意事项
- 不可变性:
String对象在 Java 中是不可变的。trim()方法不会修改原始字符串,而是返回一个新的、处理过的字符串,你必须用一个新的变量来接收这个结果。 - 去除的字符:
trim()会去除所有 Unicode 标准定义的“空白字符”,包括:- 空格 (` `)
- 制表符 (
\t) - 换行符 (
\n) - 回车符 (
\r) - 换页符 (
\f) - 其他空白字符(如
\u00A0不换行空格)。
- 内部空格:
trim()不会去除字符串内部的空格。"a b".trim()的结果仍然是"a b"。
其他去除空格的方法
虽然 trim() 是最直接的方法,但在某些特定场景下,你可能需要其他方法。
(1) 使用 replaceAll() 或 replaceFirst()(正则表达式)
如果你想去除所有空白字符(包括字符串内部的),可以使用正则表达式。
String originalStr = " Hello, World! ";
// 去除所有空白字符(包括字符串内部的)
String noSpacesStr = originalStr.replaceAll("\\s", "");
System.out.println("去除所有空格: '" + noSpacesStr + "'"); // 输出: 'Hello,World!'
// 只去除第一个和最后一个空白字符(效果等同于 trim())
String trimmedLikeStr = originalStr.replaceFirst("^\\s+", "").replaceFirst("\\s+$", "");
System.out.println("类似 trim(): '" + trimmedLikeStr + "'"); // 输出: 'Hello, World!'
\\s是正则表达式,匹配任何空白字符。^\\s+匹配字符串开头的 1 个或多个空白字符。\\s+$匹配字符串结尾的 1 个或多个空白字符。
(2) 使用 Apache Commons Lang 的 StringUtils.trim()
如果你的项目已经使用了 Apache Commons Lang 库,可以使用 StringUtils.trim(),它的功能和 Java 内置的 trim() 完全一样。

import org.apache.commons.lang3.StringUtils;
String originalStr = " Hello, World! ";
String trimmedStr = StringUtils.trim(originalStr);
System.out.println("使用 Commons Lang: '" + trimmedStr + "'"); // 输出: 'Hello, World!'
(3) 使用 Guava 的 CharMatcher.trimFrom()
如果你使用的是 Google Guava 库,可以使用 CharMatcher 来实现更灵活的空白字符去除。
import com.google.common.base.CharMatcher;
String originalStr = " Hello, World! ";
String trimmedStr = CharMatcher.whitespace().trimFrom(originalStr);
System.out.println("使用 Guava: '" + trimmedStr + "'"); // 输出: 'Hello, World!'
| 方法 | 描述 | 适用场景 |
|---|---|---|
String.trim() |
推荐,去除字符串开头和结尾的空白字符。 | 99% 的情况,这是最简单、最直接、性能最好的选择。 |
String.replaceAll() |
使用正则表达式去除所有空白字符(包括字符串内部)。 | 需要去除字符串所有空格时。 |
StringUtils.trim() |
Apache Commons Lang 提供,功能与 String.trim() 相同。 |
项目已依赖 Commons Lang,保持代码风格统一。 |
CharMatcher.trimFrom() |
Google Guava 提供,功能更强大,可自定义匹配的字符。 | 项目已依赖 Guava,需要更复杂的字符处理逻辑。 |
对于绝大多数 Java 开发需求,直接使用 String.trim() 是最佳选择。

