You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中不使用\s如何去除字符串空格?已掌握replaceAll("\s+","")

当然有啦!不用\s的话,我们可以直接针对具体的空白字符做匹配,或者用非正则的字符串处理方式,下面给你几种实用的实现思路:

1. 直接指定要去除的空白字符(正则方式)

\s本质是正则表达式里对**普通空格、制表符(\t)、换行符(\n)、回车符(\r)、换页符(\f)**等空白字符的简写。所以我们完全可以把这些字符直接写进正则的字符类里,替代\s:

// 去除所有单个空白字符
String result = str.replaceAll("[ \t\n\r\f]", "");
// 如果要合并连续空白并去除,就加+
String result = str.replaceAll("[ \t\n\r\f]+", "");

如果还需要处理全角空格这类Unicode空白,直接把对应的字符编码加进去就行,比如:

String result = str.replaceAll("[ \t\n\r\f\u3000]", "");

(\u3000是全角空格的Unicode编码)

2. 遍历字符过滤(非正则方式)

如果不想用正则表达式,我们可以手动遍历字符串的每个字符,利用Character.isWhitespace()方法判断并过滤空白字符:

StringBuilder sb = new StringBuilder();
for (char c : str.toCharArray()) {
    // 只保留非空白字符
    if (!Character.isWhitespace(c)) {
        sb.append(c);
    }
}
String result = sb.toString();

这种方法很直观,而且Character.isWhitespace()会识别所有Java定义的空白字符(和\s的覆盖范围基本一致),不需要写正则。

3. 只去除普通空格的极简写法

如果你的场景只需要去除普通的空格(不包括制表符、换行等),那更简单,直接匹配空格字符就行:

String result = str.replaceAll(" ", "");
// 或者用非正则的replace方法(效率更高)
String result = str.replace(" ", "");

小提示

  • 如果只处理普通空格,用replace(" ", "")比正则方式性能更好,因为它不需要正则引擎解析。
  • 如果要处理多种空白,正则字符类或者遍历过滤的方式,比用\s更透明,你可以精确控制要去除哪些空白字符。

内容的提问来源于stack exchange,提问作者hostazc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:39:13