swift2 在Swift中将字符串数组追加到字符串

9ceoxa92  于 2022-11-23  发布在  Swift
关注(0)|答案(3)|浏览(361)

我有一个字符串数组作为一个变量,还有一个字符串作为另一个变量。我想把集合中的所有字符串都追加到这个字符串中。
例如我有:

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或其他函数以同样的方式实现这一点。
有什么帮助吗?
谢谢你!

uoifb46i

uoifb46i1#

您可以使用joined(separator:)

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

i1icjdpr2#

可以使用joinWithSeparator(String)将数组转换为字符串

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

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

krugob8w

krugob8w3#

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

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

另一种方法是使用函数reduce和+函数运算符来连接字符串。如果你想在合并过程中执行额外的逻辑,这可能是首选。两个示例代码产生的结果是相同的。

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

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

相关问题