I have this Java code to trim a string

String title = titleEt.getText().toString().trim();

When I convert to kotlin, I expect this should be the kotlin code to trim the leading and trailing spaces.

val title = titleEt.text.toString().trim()

然而,IDE生成了这段代码

val title = titleEt.text.toString().trim { it <= ' ' }

这是什么{it&lt;=''}?是否有小于""的字符?

推荐答案

Java's String#trim() removes all codepoints between '\u0000' (NUL) and '\u0020' (SPACE) from the start and end of the string.

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

These characters include ASCII whitespace, but also include control characters.

'\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' ␠ (' ')

Kotlin相关问答推荐

用浮点数或十进制数给出错误答案的阶乘计算

我可以在kotlin/java.util.scanner中跳过分隔符而不重复吗?

如何在数据类中删除空格 (String)?

修改器的属性是什么,我需要更改以使角变圆且宽度更小?喷气背包组合

Kotlin 可空泛型

如何将字符串格式化为电话号码kotlin算法

Moshi:解析单个对象或对象列表(kotlin)

Spring webflux bean验证不起作用

以编程方式重新启动 Spring Boot 应用程序/刷新 Spring 上下文

哪里可以找到aapt2日志(log)?

如果 Maybe 完成,则从其他来源将 Maybe 转换为 Single

Ktor 在 java.library.path 中没有 netty_transport_native_epoll_x86_64

在Kotlin中不带类直接引用枚举实例

launch 仅从 Kotlin 1.3 开始可用,不能在 Kotlin 1.2 中使用

Kotlin协程处理错误和实现

如何为kotlin异常生成SerialVersionId?

Kotlin - 是否可以在类中的 init 块之前初始化伴随对象?

Android:Exoplayer - ExtractorMediaSource 已弃用

访问Kotlin中的属性委托

Kotlin - 如何获取注释属性值