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

Kotlin中字符串按空格分割失效问题求助

在Kotlin中解决空格分割字符串无效的问题

兄弟,我完全懂你遇到的这个糟心问题!之前我也试过各种正则写法,结果在Kotlin里就是不生效,差点就像你一样用Java类来绕路了😅

为啥直接用split(" ")或者split("\\s")没效果?

  • Kotlin的split(String)方法是按字面量精确匹配的,不会把传入的字符串解析成正则表达式。所以你写的split("\\s")其实是在匹配\s这两个字符,而不是正则中代表空白字符的\s,自然起不到分割空白的作用。
  • 至于split(" "),它只会匹配单个普通空格,要是你的字符串里有连续空格、制表符(\t)、换行符或者全角空格这类非普通空白字符,它就完全达不到你想要的分割效果,甚至会分割出一堆空字符串元素。

纯Kotlin的完美解决方案

不用再依赖Java类了,直接用Kotlin的正则相关API就能轻松解决:

  • 匹配任意空白字符(空格、制表符、换行等):
    value.split("\\s".toRegex())[0]
    
  • 匹配一个或多个连续空白字符(避免分割后出现空字符串,这也是最常用的场景):
    value.split("\\s+".toRegex())[0]
    
  • 如果处理的是长字符串,推荐用splitToSequence,它采用懒加载模式,性能更优:
    value.splitToSequence("\\s+".toRegex()).first()
    

你提到的values.split("\\s".toRegex())[0]确实是Kotlin专属的可行方案,而split(" ")在你这里失效,大概率是因为目标字符串里存在非普通空格的空白字符,或者连续多个空格,导致字面量匹配无法生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:58:45