java中去除首尾空白用trim()或java 11+的strip(),去除所有空格(含内部)需用replaceall("s+", "")或replace(" ", "");二者目的不同,不可混用,且string不可变、需防null。

Java 中 String 去除首尾空白字符用 trim(),而去除所有空格(包括内部)需手动处理或使用正则,二者目的不同,不能混用。
只去首尾空白:用 trim()
trim() 是最常用的方法,它会移除字符串开头和结尾的 Unicode 空白字符(如空格、制表符 、换行符
、回车符
等),但保留中间的所有字符不变。
- 不会修改原字符串(String 不可变,返回新字符串)
- 对
null调用会抛出NullPointerException,建议先判空
String s = " Hello World "; String result = s.trim(); // "Hello World"
去掉所有空格(含内部):用 replaceAll 或 replace
如果目标是删掉**所有空格字符**(包括中间的),推荐以下方式:
-
replaceAll("\s+", ""):匹配所有 Unicode 空白字符(空格、制表、换行等)并替换为空字符串 -
replace(" ", ""):只删英文半角空格,简单直接,性能略优 - 避免用
replaceAll(" ", "")——正则模式不加转义虽能工作,但语义不清;用replace更明确
String s = " Hello World
";
String noSpace = s.replaceAll("\s+", ""); // "HelloWorld"
String noBlank = s.replace(" ", ""); // 只去空格:"Hello World
"
更严格的首尾清理:strip()(Java 11+)
Java 11 引入了 strip()、stripLeading()、stripTrailing(),语义更清晰,且对 Unicode 空白支持更一致(比如支持全角空格、不换行空格等)。
-
strip()功能类似trim(),但基于 Unicode 标准判断空白 - 若项目已用 Java 11+,优先用
strip()替代trim() - 同样返回新字符串,不改变原串
String s = " Hello World "; // 全角空格(U+3000) s.trim(); // 仍保留全角空格(trim 不识别) s.strip(); // 正确去除全角空格
注意 null 安全和不可变性
String 是不可变对象,所有“去除”操作都返回新字符串,原字符串不变。同时必须防范 null:
- 手动判空:
s != null ? s.trim() : null - 用
Objects.toString(s, "")统一转空字符串再处理 - 借助工具类如 Apache Commons Lang 的
StringUtils.trimToEmpty(s)或StringUtils.deleteWhitespace(s)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











