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

Java处理SOAP请求XML元素时换行符\n未被移除的问题

问题原因及解决办法

核心问题

你写的正则表达式里把换行符(\n)加到了允许保留的字符列表里,所以replaceAll根本不会移除它。看代码里的"\u0009\r\n",这里的\n就是你要删的换行符,属于被排除在替换操作外的字符,自然会保留下来。

解决办法

方法1:直接移除换行符(最简单)

如果只需要删除\n,不用写复杂正则,直接用不带正则的replace方法:

nickName = nickName.replace("\n", "");

注意:Java的String是不可变对象,必须把方法返回的新字符串赋值给变量,原字符串不会被修改。

方法2:修改正则表达式(保留其他允许字符,仅移除\n)

把正则里的\n去掉,这样换行符就会被匹配并替换为空:

nickName = nickName.replaceAll("[^"
                + "\u0009\r"  // 去掉了原来的\n
                + "\u0020-\uD7FF"
                + "\uE000-\uFFFD"
                + "\ud800\udc00-\udbff\udfff"
                + "]", "");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 19:02:12