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

如何移除字符串中的硬回车?现有replaceAll代码失效求解决

移除字符串中硬回车的最佳方法

问题场景

输入字符串:

String in= "strengthened columns 
with GRPES
";

预期输出:strengthened columns with GRPES

你尝试的代码未生效:

in = in.replaceAll("\\r\\n","";
System.out.println(in);

问题原因

你的代码存在两个问题:

  1. 语法错误:replaceAll的参数未闭合,缺少结尾的双引号和右括号,正确写法应为in.replaceAll("\\r\\n", "")
  2. 匹配范围有限:仅针对Windows系统的\r\n换行符,但Linux/macOS使用\n、旧版Mac使用\r,只匹配\r\n会漏掉其他系统的换行场景。

可行解决方法

1. 匹配所有类型换行符(通用首选)

用正则表达式[\r\n]+匹配任意数量的回车或换行,替换为空格(或空字符串,按需选择):

in = in.replaceAll("[\r\n]+", " ");

如果需要去除首尾可能多余的空格,可追加trim():

in = in.replaceAll("[\r\n]+", " ").trim();

2. 适配当前系统换行符

若仅需处理当前运行系统的换行符,可通过System.lineSeparator()获取系统默认换行标识后替换:

in = in.replace(System.lineSeparator(), " ");

该方法仅适用于单系统场景,跨平台处理建议用方法1。

3. 逐个替换(无正则,更直观)

不想使用正则的话,可逐个替换不同类型的换行符:

in = in.replace("\r\n", " ").replace("\n", " ").replace("\r", " ");

写法简单直接,适合无需复杂正则的场景。

修正后的完整代码示例

public class Main {
    public static void main(String[] args) {
        String in = "strengthened columns \nwith GRPES\n";
        // 通用写法,处理所有换行并去除首尾空格
        in = in.replaceAll("[\r\n]+", " ").trim();
        System.out.println(in); // 输出:strengthened columns with GRPES
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 18:40:37