在Swift中向字符串追加一个字符串数组

时间:2015-11-28 18:11:47

标签: ios swift swift2 ios9

我有一个变量的字符串数组,另一个变量的字符串。我想将集合中的所有字符串附加到单个字符串中。

例如,我有:

 var s = String()

   //have the CSV writer create all the columns needed as an array of strings
   let arrayOfStrings: [String] = csvReport.map{GenerateRow($0)}

// now that we have all the strings, append each one 
        arrayOfStrings.map(s.stringByAppendingString({$0}))

上面的一行失败了。我已经尝试了我能想到的每一个组合,但最终,我无法得到它,除非我只是创建一个for循环来遍历整个集合,arrayOfStrings,然后通过一。我觉得我可以使用地图或其他功能以同样的方式实现这一目标。

任何帮助?

谢谢!

3 个答案:

答案 0 :(得分:15)

您可以使用joinWithSeparator

let stringArray = ["Hello", "World"]
let sentence = stringArray.joined(separator: " ")  // "Hello World"

答案 1 :(得分:6)

您可以使用joinWithSeparator(String)将数组转换为字符串 这是一个例子

var array = ["1", "2", "3"]
let stringRepresentation = array.joinWithSeparator("-") // "1-2-3"

来源:[How do I convert a Swift Array to a String?]

答案 2 :(得分:2)

这里至少有两个选项。 joinWithSeparator对象上最具语义选择的可能是[String]。这会连接数组中的每个字符串,将分隔符作为参数提供在每个字符串之间。

 let result = ["a", "b", "c", "d"].joinWithSeparator("")

另一种方法是使用函数reduce和+函数运算符来连接字符串。如果您想要将其他逻辑作为组合的一部分,这可能是首选。两个示例代码都产生相同的结果。

 let result = ["a", "b", "c", "d"].reduce("", combine: +)

值得注意的是,第二个选项可以转移到任何可以添加的类型,而第一个选项只适用于一系列字符串,因为它是在SequenceType where Generator.Element == String的协议扩展上定义的。