我有一个字符串数组作为一个变量,还有一个字符串作为另一个变量。我想把集合中的所有字符串都追加到这个字符串中。
例如我有:
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,然后一个接一个地添加它。我觉得我可以用map或其他函数以同样的方式实现这一点。
有什么帮助吗?
谢谢你!
3条答案
按热度按时间uoifb46i1#
您可以使用joined(separator:):
i1icjdpr2#
可以使用
joinWithSeparator(String)
将数组转换为字符串来源:[How do I convert a Swift Array to a String?]
krugob8w3#
这里至少有两个选项。最有语义的选择可能是
[String]
对象上的joinWithSeparator
。这将连接数组中的每个字符串,并在每个字符串之间放置作为参数提供的分隔符。另一种方法是使用函数
reduce
和+函数运算符来连接字符串。如果你想在合并过程中执行额外的逻辑,这可能是首选。两个示例代码产生的结果是相同的。同样值得注意的是,第二个选项可转移到任何可以添加的类型,而第一个选项只适用于字符串序列,因为它是在
SequenceType where Generator.Element == String
协议扩展上定义的。