字符串替换不使用Dictionary

时间:2016-02-09 03:10:38

标签: swift swift2

我有一个迷你词典,我想用它来替换用户输入字符串中文本的出现。但是,它不会替换特定字符串的每个匹配项,而是保留原始字符串。例如,用户类型:

"女孩去了学校"

我的节目仍然回归"女孩去了学校"。它应该出现在" binguel debbo去了jangirde"

func input() -> String {
    let keyboard = NSFileHandle.fileHandleWithStandardInput()
    let inputData = keyboard.availableData

    return (NSString(data: inputData, encoding:NSUTF8StringEncoding)?.stringByTrimmingCharactersInSet(NSCharacterSet.newlineCharacterSet()))! as! String
}

var userInput = "" //Declares original user input
var finalSentence:String = "" //Declares a string variable for the final sentence
var newUserString:String

var fulfuldeWords = ["man":"gorko", "woman":"debbo",
    "boy":"binguel gorko", "girl": "binguel debbo", "work":"golle",
    "school":"jangirde", "water":"ndiyam", "horse":"puccu", "cow":"na'i",
    "hat":"hufunere", "house":"wuro", "courage":"cuusal", "camel":"gelodi",
    "milk":"kossam"
]

print("Please enter a sentence to be partially translated: ") //Ask user for input
userInput = input()
var theStringArray = userInput.componentsSeparatedByString(" ")

for (englishWord, fulaniWord) in fulfuldeWords {
    finalSentence = userInput.stringByReplacingOccurrencesOfString(englishWord, withString: fulaniWord)
}

print(finalSentence)

这是在Swift中完成的,我不明白为什么它不起作用。我的代码在哪里出错了。谢谢!

1 个答案:

答案 0 :(得分:0)

您需要对同一个变量执行函数stringByReplacingOccurencesOfString以获得所需的结果。因此,在您的代码中,将结果存储在userInput上并打印为输出。

for (englishWord, fulaniWord) in fulfuldeWords {
    userInput = userInput.stringByReplacingOccurrencesOfString(englishWord, withString: fulaniWord)
}

print(userInput)