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