使用 String.trim()(最常用)
String.trim() 是 Java 提供的内置方法,专门用于去除字符串前后的空白字符(包括空格、制表符 \t、换行符 \n 等)。

示例代码
String str = " Hello World "; String trimmedStr = str.trim(); System.out.println(trimmedStr); // 输出: "Hello World"
特点
- 简单直接,一行代码搞定。
- 去除所有空白字符(不仅仅是空格)。
- 不会去除字符串中间的空格。
使用 StringUtils.strip()(Apache Commons Lang)
如果你已经在项目中使用了 Apache Commons Lang 库,可以使用 StringUtils.strip() 方法。
示例代码
import org.apache.commons.lang3.StringUtils; String str = " Hello World "; String trimmedStr = StringUtils.strip(str); System.out.println(trimmedStr); // 输出: "Hello World"
特点
- 功能与
String.trim()类似,但提供了更多灵活性(如可以指定要去除的字符)。 - 需要额外引入依赖:
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency>
使用 StringUtils.trimToEmpty()(Apache Commons Lang)
如果字符串为 null,StringUtils.trimToEmpty() 会返回空字符串 ,而 String.trim() 会抛出 NullPointerException。
示例代码
import org.apache.commons.lang3.StringUtils; String str = null; String trimmedStr = StringUtils.trimToEmpty(str); System.out.println(trimmedStr); // 输出: ""
特点
- 安全处理
null,避免NullPointerException。 - 适用于可能为
null的字符串。
使用正则表达式(灵活但性能稍差)
如果需要更精细的控制(如只去除空格,不去除制表符或换行符),可以使用正则表达式。
示例代码
String str = " Hello World ";
String trimmedStr = str.replaceAll("^\\s+|\\s+$", "");
System.out.println(trimmedStr); // 输出: "Hello World"
解释
^\\s+匹配开头的空白字符。- 表示“或”。
\\s+$匹配结尾的空白字符。replaceAll会替换所有匹配的部分。
特点
- 灵活性高,可以自定义去除哪些字符。
- 性能稍差,适用于复杂场景。
使用 String.strip()(Java 11+)
从 Java 11 开始,String 类新增了 strip()、stripLeading() 和 stripTrailing() 方法,功能比 trim() 更严格(遵循 Unicode 标准)。

示例代码
String str = " Hello World "; String trimmedStr = str.strip(); System.out.println(trimmedStr); // 输出: "Hello World" // 只去除前导空格 String leadingTrimmed = str.stripLeading(); System.out.println(leadingTrimmed); // 输出: "Hello World " // 只去除尾部空格 String trailingTrimmed = str.stripTrailing(); System.out.println(trailingTrimmed); // 输出: " Hello World"
特点
- Unicode 兼容,比
trim()更严格。 - 提供
stripLeading()和stripTrailing()方法,可以单独去除前导或尾部空格。
| 方法 | 适用场景 | 是否支持 null |
是否去除中间空格 | 备注 |
|---|---|---|---|---|
String.trim() |
简单去除前后空白 | ❌(会抛出异常) | Java 1.0+,最常用 | |
StringUtils.strip() |
需要更多灵活性 | 需要引入 Apache Commons Lang | ||
StringUtils.trimToEmpty() |
安全处理 null |
需要引入 Apache Commons Lang | ||
| 正则表达式 | 自定义去除规则 | 灵活但性能稍差 | ||
String.strip() |
Java 11+,Unicode 兼容 | 提供 stripLeading() 和 stripTrailing() |
推荐选择
- 如果使用 Java 11+,优先用
String.strip()。 - 如果使用 Java 10 或更早,用
String.trim()。 - 如果需要处理
null,用StringUtils.trimToEmpty()(需引入依赖)。 - 如果需要更精细的控制,用正则表达式。
希望这能帮到你!如果有其他需求,欢迎继续提问。 😊

