Java中strip与trim()的区别

@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)
相关推荐
古法安卓2 小时前
Android-日志系统源码解析
android·java·android studio
小夏coding3 小时前
从"一把梭"到"精妙拆解" —— 滑动窗口计时框架的设计演进
java·后端
MacroZheng4 小时前
同事问我:"Claude Code经常失忆,不怕它把项目搞炸?",我:"怕,三个Markdown文件给它装个永不丢失的外置大脑!"
java·人工智能·后端
十年Java程序媛5 小时前
深度实战:JDK21 虚拟线程 + HikariCP 生产正确配比、坑点、监控全套
java·spring boot
xiaoqiMikko5 小时前
有人在搜一个不存在的 Tomcat 版本
java·tomcat
用户3126874877209 小时前
ConcurrentHashMap 怎么保证线程安全?从分段锁到 CAS+synchronized
java
vipxieliang9 小时前
ValidX vs Apache Commons Validator:功能与性能对比
java·spring boot
SimonKing9 小时前
升级Spring Boot 4后,从 Jackson 2 到 3,到底有哪些变化
java·后端·程序员
吃饱了得干活10 小时前
一篇讲清楚Spring Boot:自动装配、启动器、过滤器、拦截器、设计模式
java·spring boot·后端
lhldsg11 小时前
AI零售系统实战指南:从架构设计到落地部署全解析
java·人工智能·小程序·uni-app·零售