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

如何使用String.split()拆分字符串为单字符且避免空字符串?

解决String.split("")生成空字符串的问题

当执行以下Kotlin代码,传入字符串"Testing 1234"时:

val segm = str.split("")
// .filter { it -> it.length > 0 }
println(segm)

得到的结果会包含首尾空字符串:[, T, e, s, t, i, n, g, , 1, 2, 3, 4, ]。如果不想通过后续filter操作去除空串,可以直接借助正则表达式调用split方法实现:

val segm = str.split("(?=.)".toRegex())

这样拆分后得到的结果是[T, e, s, t, i, n, g, , 1, 2, 3, 4],完全没有空字符串。

原理说明:正则表达式(?=.)是正向前瞻断言,它仅匹配后面紧跟一个字符的空位置。这样拆分时只会在每个字符的前侧位置进行分割,不会匹配字符串开头的空位置,自然也就不会生成首尾的空串。

如果你的需求是将字符串拆分为单个字符的集合,还有更简洁的替代方式:

val segm = str.toList().map { it.toString() }

这行代码会直接将字符串转换为单个字符的列表,同样能得到预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 06:43:16