从结尾开始n次替换字符串

时间:2015-01-14 12:17:05

标签: string go

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

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

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

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

是否有类似的标准功能从头开始?

1 个答案:

答案 0 :(得分:1)

您没有寻求此类标准功能。

备选方案#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()查找可替换的子字符串并替换它们。