我正在尝试创建一个采用输入字符串的应用程序,然后用空格分隔每个字符,最后显示它。例如,当我输入" pizza"它应输出" p i z z a"。不幸的是,我写的以下代码不起作用:
@IBOutlet var input: UITextField!
@IBOutlet var output: UITextField!
@IBAction func split(sender: AnyObject) {
我认为问题在于以下for-in:
for character in input.text!.characters.indices {
input.text = String(input.text![character], terminator: "")
}
output.text = input.text
}
我是编程的新手,我试图在网上找到解决方案,但我没有成功。你能帮帮我吗?
答案 0 :(得分:5)
您可以创建字符串字符数组,并使用joinWithSeparator将其与空格连接:
extension String {
var spacedString: String {
return characters.map{String($0)}.joinWithSeparator(" ")
}
}
"pizza".spacedString
答案 1 :(得分:0)
你在这里犯了三个错误:
1)您每次在循环中为input.text
分配新值,而不是附加到结果字符串的末尾。
2)您通过input.text
循环,同时,您正在更改input.text
内的值,这会在执行input.text![character]
时出现问题
3)您不需要使用String(input.text![character], terminator: "")
。 "\(input.text![character]) "
应该运作良好
Leo Dabus的答案对你有用,但我也想提供一个较低级别的版本:
var result = String()
for character in input.text!.characters {
result.appendContentsOf("\(character) ")
}
output.text = result.stringByTrimmingCharactersInSet(.whitespaceAndNewlineCharacterSet())