3

我得到输出:

Hello World
Hello 

使用以下代码:

package main

import(
    "fmt"
    "strings"
)

func main(){
    s := "Hello World"
    fmt.Println(strings.NewReplacer("Hello","").Replace(s))
    fmt.Println(strings.NewReplacer("World","").Replace(s))
}

这是一个错误吗?有没有更好的方法来删除子字符串?

4

2 回答 2

2

这是一个错误。它现在固定在尖端。

https://groups.google.com/forum/#!topic/golang-nuts/CNdpwbCSbHM

这是另一种删除子字符串的方法:

package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.Replace("Hello World", "Hello", "", 1))
}
于 2013-10-24T23:09:44.827 回答
1

我不是围棋专家,但对我来说它看起来像是一个错误。

这有效:

package main

import(
    "fmt"
    "strings"
)

func main(){
    s := "Hello World"
    fmt.Println(strings.NewReplacer("Hello"," ").Replace(s))
    fmt.Println(strings.NewReplacer("World","").Replace(s))
}

输出:

   World 

Hello

也许有一个空字符串关键字?

即使这样也有效:

fmt.Println(strings.NewReplacer("ello", "").Replace(s))

这也有效:

fmt.Println(strings.NewReplacer("Hello","", "Hi", "").Replace(s))

正如直翼类动物所提到的,单次替换似乎是特殊情况和越野车。

于 2013-10-24T21:24:15.767 回答