ff *_* .n 8 android trim kotlin
在 kotlin 中修剪删除空格 int 前导和尾随,但是当 android studio 将 java 代码转换为 kotlin 时,将 java 中的 trim() 转换为 kotlin 中的 trim{it <= ' '} 时将其更改为修剪,这没有区别。修剪和修剪{it <= ' '} 之间有什么区别??
jep*_*bio 12
根据文档:https : //kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/trim.html
fun String.trim(): String 返回去除了前导和尾随空格的字符串。
在it <= ' '
将删除所有“非打印”字符的ASCII码小于或等于比空间(ASCII十进制= 32)作为回车,换行...
我刚刚测试了许多这样的字符:
val kotlin = "\t\t"
println(kotlin)
val kotlin2 = "\t\t".trim()
println(kotlin2)
val kotlin3 = "\t\t".trim{it <= ' '}
println(kotlin3)
Run Code Online (Sandbox Code Playgroud)
这输出:
Run Code Online (Sandbox Code Playgroud)
他们都清理了这个字符。正如@AlexeyRomanov 所说,kotlin 将使用isWhitespace方法返回 true 的字符理解为空白字符。因此,这it <= ' '
是使其仅修剪与 java 相同的字符,而不是根据 Unicode 标准修剪其他空白字符。
如果我们测试例如\u00A0
字符:
val kotlin4 = "\u00A0\u00A0".trim()
println(kotlin4)
val kotlin5 = "\u00A0\u00A0".trim{it <= ' '}
println(kotlin5)
Run Code Online (Sandbox Code Playgroud)
我们可以看到输出的差异:
Run Code Online (Sandbox Code Playgroud)
您可以在kotlin playground 中测试它。