修剪字符串函数中的"it ​​<=''"在这里意味着什么

lan*_*nyf 13 android trim kotlin

有一个java代码来修剪字符串

String title = titleEt.getText().toString().trim();
Run Code Online (Sandbox Code Playgroud)

当覆盖到kotlin时,我认为这应该是用于修剪前导空间和尾随空间的kotlin代码.

val title = titleEt.text.toString().trim()
Run Code Online (Sandbox Code Playgroud)

但IDE会生成此代码

val title = titleEt.text.toString().trim { it <= ' ' }
Run Code Online (Sandbox Code Playgroud)

这里的{it <=''}是什么,它是否少于''?

eph*_*ent 22

Java 将从字符串的开头和结尾String#trim()删除'\u0000'(NUL)和'\u0020'(SPACE)之间的所有代码点.

Kotlin CharSequence.trim()默认只删除前导和尾随空格(字符匹配Char.isWhitespace,即Character#isWhitespace(char)).对于与Java相同的行为,IDE生成了一个谓词,该谓词与Java修剪的字符相匹配.

这些字符包括ASCII空格,但也包括控制字符.

'\u0000' ? ('\0')
'\u0001' ?
'\u0002' ?
'\u0003' ?
'\u0004' ?
'\u0005' ?
'\u0006' ?
'\u0007' ? ('\a')
'\u0008' ? ('\b')
'\u0009' ? ('\t')
'\u000A' ? ('\n')
'\u000B' ? ('\v')
'\u000C' ? ('\f')
'\u000D' ? ('\r')
'\u000E' ?
'\u000F' ?
'\u0010' ?
'\u0011' ?
'\u0012' ?
'\u0013' ?
'\u0014' ?
'\u0015' ?
'\u0016' ?
'\u0017' ?
'\u0018' ?
'\u0019' ?
'\u001A' ?
'\u001B' ?
'\u001C' ?
'\u001D' ?
'\u001E' ?
'\u001F' ?
'\u0020' ? (' ')
Run Code Online (Sandbox Code Playgroud)