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

Kotlin与Java的String.split方法对相同正则处理结果为何不一致

二者split方法确实存在设计差异,具体原因如下:

  • Java的String.split()方法传入的字符串参数默认会被解析为正则表达式,你写的"(\\[)|(\\])"可以正常匹配[或者]作为分隔符,所以分割后得到["date", "gt"]的预期结果。
  • Kotlin的split方法做了重载区分:直接传入字符串参数时,会把参数当作普通字面量匹配分割,不会解析正则规则。你的正则字符串作为普通文本在date[gt]中匹配不到任何内容,所以分割结果就是仅包含原字符串的数组。

Kotlin环境下的正确实现写法:

如果要使用正则规则分割,需要先将字符串转为Regex类型,代码如下:

val str = "date[gt]"
val result = str.split("(\\[)|(\\])".toRegex())
// 执行后result值为 ["date", "gt"]

你也可以用更简洁的正则写法"[\\[\\]]".toRegex(),效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:24:04