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

Kotlin中实现字符串无前缀时自动追加指定前缀的原生方案

方案1:使用removePrefix组合实现(标准库原生支持,最简洁)

Kotlin标准库没有提供命名为ensurePrefix之类的专属API,但可以通过现有字符串扩展函数组合实现无if判断的简洁写法,完全满足需求:

val text = "123456"
val prefix = "#"
val textFormatted = prefix + text.removePrefix(prefix)

逻辑说明:先移除字符串中已存在的指定前缀(如果有的话),再统一拼接一次前缀,最终效果就是字符串必然仅携带一次目标前缀,不会出现重复前缀的问题


方案2:自定义扩展函数(复用性更强、可读性更高)

如果需要频繁使用该逻辑,可以先自定义一次通用扩展函数,后续调用更直观:

// 定义通用扩展函数
fun String.ensurePrefix(prefix: String) = prefix + this.removePrefix(prefix)

// 调用示例
val textFormatted = "123456".ensurePrefix("#")

其他可选写法

也可以结合takeIf实现,可读性略低于上述方案:

val textFormatted = text.takeIf { it.startsWith(prefix) } ?: "$prefix$text"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:48:04