杰瑞科技汇

java去掉字符串前后的空格

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

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

使用 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() 完全一样。

java去掉字符串前后的空格-图2
(图片来源网络,侵删)
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() 是最佳选择。

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