这是我与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:自己动手做

您可以简单地使用for strings.LastIndex() 查找可替换的子字符串并替换它们。

10-05 19:10