string - 替换字符串 n 次,从末尾开始

标签 string go

这是我使用 golang 的第二天,我可能会问一个非常基本的问题:

我想替换字符串的一部分,这就是 strings.Replace适用于:

func Replace(s, old, new string, n int) string

最后一个参数是 oldnew 替换的次数 - 从字符串的开头开始。

是否有类似的从尾部开始的标准函数?

最佳答案

没有您要的标准功能。

备选方案#1:反向

使用字符串反转函数(取自 here ):

func Rev(s string) string {
    runes := []rune(s)
    for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
        runes[i], runes[j] = runes[j], runes[i]
    }
    return string(runes)
}

您的解决方案是:

Rev(strings.Replace(Rev(s), Rev(old), Rev(new), n))

备选方案 #2:自己动手

您可以简单地使用forstrings.LastIndex()找到可替换的子串并替换它们。

关于string - 替换字符串 n 次,从末尾开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27942769/

相关文章:

mySQL:删除正则表达式子字符串

html - 在索引处的字符串中插入字符串(快速)

go - Go 有开箱即用的优先队列吗?

rest - Swag init 只生成 "general API information"

python - 是否有用于 Unicode 空白的 Python 常量?

javascript - 无法在 PHP 中访问 JSON 数组

Ruby - 查找字符串中最长的回文子串

json - 将 `struct` 作为类型名称传递给函数参数

go - Go中使用递归和并发的第N个斐波那契数

golang变量设置