如何将数组中的项替换为其他数组中的其他项?

时间:2016-07-01 05:24:31

标签: arrays swift string replace

我知道替换字符串中项目的基本方法,但现在我是如何做到的。这是我的代码。我正在尝试搜索某些单词的注释,并在找到它们时将它们换掉。我有一些单词可以替换其他某些单词,我需要将它们匹配起来,这样句子仍然有意义。

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中单词的位置来替换另一个单词?

3 个答案:

答案 0 :(得分:1)

而不是.contains,请查看indexOfObject。 如果对象存在于conciseArray中,您将获得索引(位置),否则您将获得NSNotFound。 然后,if(location!= 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]
        }
    }
}

答案 1 :(得分:0)

这可以帮助你:

if conciseArr.contains(contentArr[num])
        {
            contentArr[num] = conciseArr.indexOf(contentArr[num])
        }

答案 2 :(得分:0)

给出一个句子和同义词词典

let sentence = "What a wonderful world"
let synonyms = ["wonderful":"beautiful", "world":"planet"]

这是你用同义词

得到一个新句子的方法
let newSentence = sentence
    .componentsSeparatedByString(" ")
    .map { synonyms[$0] ?? $0 }
    .joinWithSeparator(" ")

那是

print(newSentence) // What a beautiful planet