Kotlin实现仅替换字符串中最后出现的指定子串
Kotlin 替换字符串中最后一次出现的指定子串
要实现仅替换字符串中最后一次出现的指定子串,我们可以给String类添加一个扩展函数,借助Kotlin的字符串索引操作完成需求。
实现扩展函数
fun String.replaceLast(oldValue: String, newValue: String): String { if (oldValue.isEmpty()) return this val lastIndex = lastIndexOf(oldValue) return if (lastIndex == -1) { this // 子串不存在时直接返回原字符串 } else { // 拆分原字符串,拼接替换后的内容 substring(0, lastIndex) + newValue + substring(lastIndex + oldValue.length) } }
使用示例
val originalStr = "ONE, TWO, THREE, FOUR" val replacedStr = originalStr.replaceLast(",", " &") println(replacedStr) // 输出: ONE, TWO, THREE & FOUR
逻辑说明
- 先校验目标子串
oldValue是否为空,避免无效操作 - 通过
lastIndexOf()获取子串最后一次出现的索引位置 - 若索引不存在(返回-1)则返回原字符串;否则拆分字符串并拼接替换后的结果
内容的提问来源于stack exchange,提问作者Leonardo Sibela
相关产品推荐
相关产品推荐

