JAVA 字符串 trim() 方法的正确使用

    JAVA类里面 trim() 方法大家都比较熟悉,就是用来清除掉字符串首尾的空白字符。但在一次程序运行崩溃后,查找具体原因时,发现是由字符串末尾的一个回车符号 "\r" 所导致的。于是有机会仔细读了下该方法的 java 文档说明。其中一段内容如下:

Returns a string whose value is this string, with all leading and trailing space removed, where space is defined as any character whose codepoint is less than or equal to 'U+0020' (the space character).

    这段代码的大意是,去除首尾的空白字符,代表空白字符的 codepoint 需要小于或者等于 'U+0020''U+0020' 转为二进制就是 0000, 0010, 对应的十进制是 32.  ASCII 字符代码表如下:

    转换到下面一张比较直观的表格:

    所以经过上面的梳理后,对 trim() 方法能够去除的“空白字符”有了更加直观的理解,今后也能够更合理地运用该方法了。上面的提到的 BUG,在我手动添加 trim() 方法剔除掉末尾的 "/r" 这个空白字符后也就解决掉了。

   最后,再稍微延伸一下,在 Java 11 的发行版中,添加了新的 strip() 方法来删除字符串中的前导和末尾空格。既然已经有了一个 trim 方法,为什么还要新增一个 strip 呢?这其实是是因为 trim 方法只能针对 ASCII 值小于等于 32 的字符进行移除,但是根据 Unicode 标准,除了ASCII中的字符以外,还是有很多其他的空白字符的,具体细节可以参考:从String中移除空白字符的多种方式

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思涛的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值