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)
相关推荐
皮皮林5511 天前
利用闲置 Mac 从零部署 OpenClaw 教程 !
java
华仔啊1 天前
挖到了 1 个 Java 小特性:var,用完就回不去了
java·后端
SimonKing1 天前
SpringBoot整合秘笈:让Mybatis用上Calcite,实现统一SQL查询
java·后端·程序员
日月云棠2 天前
各版本JDK对比:JDK 25 特性详解
java
用户8307196840822 天前
Spring Boot 项目中日期处理的最佳实践
java·spring boot
JavaGuide2 天前
Claude Opus 4.6 真的用不起了!我换成了国产 M2.5,实测真香!!
java·spring·ai·claude code
IT探险家2 天前
Java 基本数据类型:8 种原始类型 + 数组 + 6 个新手必踩的坑
java
花花无缺2 天前
搞懂new 关键字(构造函数)和 .builder() 模式(建造者模式)创建对象
java
用户908324602732 天前
Spring Boot + MyBatis-Plus 多租户实战:从数据隔离到权限控制的完整方案
java·后端
桦说编程2 天前
实战分析 ConcurrentHashMap.computeIfAbsent 的锁冲突问题
java·后端·性能优化