首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kotlin中trim{it <= '}和trim之间的区别?

kotlin中trim{it <= '}和trim之间的区别?
EN

Stack Overflow用户
提问于 2020-03-27 13:23:04
回答 2查看 8.9K关注 0票数 11

在kotlin中,trim移除空格int引导和尾随,但当android将java代码转换为kotlin时,将java中的trim()转换为trim{it <= '}在kotlin中,当将此更改为trim时,没有什么区别。修剪和修剪{it <=‘}有什么区别??

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-27 13:30:27

根据文档:https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/trim.html

String.trim():String返回一个删除了前导和尾随空格的字符串。

it <= ' '将删除所有“不可打印”字符,其ascii码小于或等于空格(ascii十进制= 32)作为回车,行提要.

我刚刚测试了许多这样的角色:

代码语言:javascript
复制
val kotlin = "\t\t"
println(kotlin)
   
val kotlin2 = "\t\t".trim()
println(kotlin2)
   
val kotlin3 = "\t\t".trim{it <= ' '}
println(kotlin3)

这一产出如下:

代码语言:javascript
复制

他们都清理了这个角色。正如@AlexeyRomanov所说,kotlin将使用isWhitespace方法返回true的字符理解为空白字符。因此,根据Unicode标准,it <= ' '只能修剪与java相同的字符,而不是其他空格字符。

例如,如果我们测试\u00A0字符:

代码语言:javascript
复制
val kotlin4 = "\u00A0\u00A0".trim()
println(kotlin4)
   
val kotlin5 = "\u00A0\u00A0".trim{it <= ' '}
println(kotlin5)

我们可以看到产出的差异:

代码语言:javascript
复制

您可以在科林游乐场中测试它。

票数 16
EN

Stack Overflow用户

发布于 2020-03-27 16:03:06

Java的文档

否则,如果字符串中没有代码大于“\u0020”的字符,则返回一个表示空字符串的string对象。 否则,让k作为代码大于'\u0020‘的字符串中第一个字符的索引,并让m作为字符串中代码大于'\u0020’的最后一个字符的索引。返回一个String对象,表示该字符串的子字符串,该字符串以索引k处的字符开始,以索引m处的字符结束--即this.substring(k,m+ 1)的结果。

所以条件就是{ it <= ' ' } ( it是字符串中的一个字符)。

Kotlin而不是使用

代码语言:javascript
复制
public fun CharSequence.trim(): CharSequence = trim(Char::isWhitespace)

对于非破缺空间\u00A0、Ogham空格标记\u1680等是正确的,对于' '以下的一些字符(例如\u0001)是假的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60886913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档