为什么我的字符串清理函数返回原始值?

Tar*_*erw 0 swift

我已经制作了一个功能,以便我可以轻松地将所有字母小写字母组成小写,同时还可以删除所有字母!和空间.我做了这个函数(在viewdidload之外)

func cleanLink(linkName: String) -> String {
    linkName.stringByReplacingOccurrencesOfString("!", withString: "")
 linkName.stringByReplacingOccurrencesOfString(" ", withString: "")
    linkName.lowercaseString

    return linkName

}
Run Code Online (Sandbox Code Playgroud)

然后我使用了这些代码行

 var theLinkName = cleanLink("AB C!")


                print(theLinkName)
Run Code Online (Sandbox Code Playgroud)

问题是这只是打印AB C!虽然我想要它打印abc.我究竟做错了什么?

das*_*ght 5

问题是stringByReplacingOccurrencesOfString返回一个新字符串; 它没有进行替换.

您需要使用函数的返回值,如下所示:

func cleanLink(linkName: String) -> String {
    return linkName
        .stringByReplacingOccurrencesOfString("!", withString: "")
        .stringByReplacingOccurrencesOfString(" ", withString: "")
        .lowercaseString
}
Run Code Online (Sandbox Code Playgroud)

这"链接"产生新字符串的函数的调用,并返回替换的最终结果.