Согласно документам: 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)
это выводит:
?
?
?
Они оба очищают эти символы. И благодаря @AlexeyRomanov я нашел то, что kotlin понимает как символ пробела в isWhitespace документах. Таким образом, it <= ' '
должен сделать так, чтобы он обрезал только те же символы, что и java, а не другие пробельные символы в соответствии со стандартом Unicode.
Если мы протестируем, например, символ \u00A0
:
val kotlin4 = "\u00A0?\u00A0".trim()
println(kotlin4)
val kotlin5 = "\u00A0?\u00A0".trim{it <= ' '}
println(kotlin5)
мы видим разницу в выходе:
?
?
Вы можете проверить это на kotlin детской площадке .