在Swift中连接字符串

时间:2014-10-27 08:09:44

标签: ios iphone swift ios8

我有一个包含字符串的数组,即Array

我试图连接字符串,但我得到一个错误" 字符串与UInt8不相同"

var titleString:String! = ""

 for title in array {
        titleString += "\(title)"
 }

2 个答案:

答案 0 :(得分:4)

要连接字符串数组的所有元素,可以使用reduce方法:

var string = ["this", "is", "a", "string"]

let res = string.reduce("") { $0 + $1 }

第一个参数是初始字符串,它是空的,第二个是闭包,它是为数组中的每个元素执行的。闭包接收2个参数:上一步返回的值(或初始值,如果它是第一个元素),以及当前元素值。

更多信息here

附录我忘记明确回答您的问题:连接不起作用,因为您将titleString声明为可选 - 只需转换为非可选变量即可工作。如果您仍想使用可选项,请在执行赋值时使用强制解包:

titleString! += "\(title)"

附录2 正如@MartinR所建议的那样,还有另一种更简单的连接方式:

join("", string)

答案 1 :(得分:0)

在Swift 3中,这是你如何连接String数组的元素:

 ["this", "is", "a", "string"].joined(separator: "")

虽然joined(separator:)真的适合在字符串之间放置一个分隔符。 Reduce更简洁:

 ["this", "is", "a", "string"].reduce("", +)