@TOC
Java中strip与trim()的区别
jdk11及以上版本,java的String支持strip()方法,那么原来的删除空白trim()与strip()的区别时什么?
区别
trim():仅处理字符串首尾的ASCII空白字符串(小于等于\u0020字符,如空格、\t\n\r\f等),无法处理中文全角空格,不间断空格(\u00A0)等Unicode空白strip():去除首位全部的Unicode空白字符
总结:strip()适配多语言场景,trim()仅支持ASCII字符场景
扩展
除了strip()外,还支持了两个方法:
- 仅去除首部空白:
stripLeading() - 仅去除尾部空白:
stripLeading()
以下是常见的Unicode空白字符及其详细说明:
普通空格 (U+0020)
- 最常见的空格字符
- 宽度通常为字体中"0"字符宽度的一半
- 在HTML中会合并多个连续空格为一个
不间断空格 (U+00A0)
- 用于防止自动换行
- 常见用例:防止数字与单位分开(如"100 km")
- 在HTML中表示为
零宽空格 (U+200B)
- 不可见的空格字符
- 用于标记断字位置但不显示空格
- 在复杂脚本语言中用于控制字符连接
窄空格 (U+2009)
- 宽度约为普通空格的1/3
- 用于数字分组(如"1 000 000")
- 在法语中用于标点符号前
全角空格 (U+3000)
- 主要用于东亚文字排版
- 宽度与汉字相同
- 用于中文文本的对齐和缩进
制表符 (U+0009)
- 水平制表符
- 宽度通常相当于4-8个普通空格
- 用于代码对齐和表格数据
换行符 (U+000A)
- 行结束标记
- 在Unix/Linux系统中作为行终止符
- 在Windows中与回车符(U+000D)配合使用
其他特殊空白字符
- 零宽非连接符(U+200C)
- 零宽连接符(U+200D)
- 六分之一空格(U+2006)
- 四分之一空格(U+2005)