Swift:用空格分隔单词的每个字符

时间:2016-02-26 19:30:40

标签: swift for-loop split

我正在尝试创建一个采用输入字符串的应用程序,然后用空格分隔每个字符,最后显示它。例如,当我输入" 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

}

我是编程的新手,我试图在网上找到解决方案,但我没有成功。你能帮帮我吗?

2 个答案:

答案 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())