我有一个迷你词典,我想用它来替换用户输入字符串中文本的出现。但是,它不会替换特定字符串的每个匹配项,而是保留原始字符串。例如,用户类型:
"女孩去了学校"
我的节目仍然回归"女孩去了学校"。它应该出现在" 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中完成的,我不明白为什么它不起作用。我的代码在哪里出错了。谢谢!
答案 0 :(得分:0)
您需要对同一个变量执行函数stringByReplacingOccurencesOfString
以获得所需的结果。因此,在您的代码中,将结果存储在userInput上并打印为输出。
for (englishWord, fulaniWord) in fulfuldeWords {
userInput = userInput.stringByReplacingOccurrencesOfString(englishWord, withString: fulaniWord)
}
print(userInput)