我知道替换字符串中项目的基本方法,但是现在我是如何做的。这是我的代码。我正在尝试在笔记中搜索某些单词,并在找到它们时将其换出。我有某些单词要替换为其他某些单词,并且需要将它们匹配,因此该句子仍然有意义。

func searchNote1()
{
    let contentArr = note1.content.componentsSeparatedByString(" ")
    let count = contentArr.count
    var num = 0
    while num < count
    {
        if conciseArr.contains(contentArr[num])
        {
            contentArr[num] = conciseArr []
        }
        num += 1
    }
}


我正在尝试替换contentArr [num]中的字符串(无论何时找到某个单词),并将其替换为conciseArr中的字符串。我受困的地方是如何知道conciseArr中的单词替换其他单词的位置?

最佳答案

而不是.contains,而是查看indexOfObject。
如果对象存在于conciseArray中,则将获得索引(位置),否则将获得NSNotFound。
然后,如果(位置!= NSNotFound)...(使用已知索引进行交换)

而且,尽管我们正在讨论,在这里进行快速枚举也许是合适的?
(我是Obj-C的人;希望我的Swift语法正确!)

func searchNote1()
{
    let contentArr = note1.content.componentsSeparatedByString(" ")
    for (index, element) in contentArr.enumerate()
    {
        var location = conciseArr.indexOfObject(element)
        if (location != NSNotFound)
        {
            contentArr[index] = conciseArr[location]
        }
    }
}

08-19 12:12