You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Kotlin中"Hello ".split(" ")会生成含两个元素的列表?

为什么Kotlin中"Hello ".split(" ")会返回包含空元素的列表?

其实这是Kotlin的split函数不同重载版本的行为差异导致的。

你用的是字符串作为分隔符的split重载,它底层基于正则表达式逻辑拆分字符串。看你的代码示例:

val arr = "Hello ".split(" ")
println("size = ${arr.size}") // size 2
println(arr)                  // [Hello, ]

字符串"Hello "的末尾带一个空格,用" "作为分隔符拆分时,正则匹配会保留分隔符前后的所有内容:空格前面的"Hello"是第一个元素,空格后面的空内容就成了第二个元素。

如果想去掉这类空元素,有几种实用的处理方式:

  • 改用字符类型的分隔符,这个版本的split会自动丢弃末尾的空元素:
    val arr = "Hello ".split(' ')
    // 输出结果:[Hello]
    
  • 在split之后直接过滤掉空元素(如果有多个分隔符导致中间也出现空元素,这种方法更稳妥):
    val arr = "Hello ".split(" ").filterNot { it.isBlank() }
    // 输出结果:[Hello]
    

内容的提问来源于stack exchange,提问作者Orbit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 01:43:25