杰瑞科技汇

java 去掉字符串前后空格

使用 String.trim()(最常用)

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

java 去掉字符串前后空格-图1
(图片来源网络,侵删)

示例代码

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)

如果字符串为 nullStringUtils.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 标准)。

java 去掉字符串前后空格-图2
(图片来源网络,侵删)

示例代码

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()(需引入依赖)。
  • 如果需要更精细的控制,用正则表达式。

希望这能帮到你!如果有其他需求,欢迎继续提问。 😊

java 去掉字符串前后空格-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇