join一个不同的最终分隔符的string数组

一般来说:如何join一系列刺激,使最后一个分隔符与其他分隔符不同?

具体来说:iOS消息应用程序如何构造组对话的默认名称,即联系人名称列表?

class User { var name: String init(name: String) { self.name = name } } let users = [ User(name: "Matthew"), User(name: "Mark"), User(name: "Luke"), User(name: "John") ] users.list(" & ") { $0.name } // => "Matthew, Mark, Luke & John" 

PHP

  • 用“,”排列数组,在最后一项之前加上“和”
  • 用&符号replace最后一个逗号
  • 如何编辑implode,这样它将连接两个string的值?

Ruby(在Rails上)

  • Rails使用逗号和“and”连接string列表

python

  • 如何在Python中join列表,但使最后一个分隔符不同?

C#(Linq)

  • 用“和”逗号分隔列表代替最后的逗号

使用问题中定义的类你可以做这样的事情:

 let names = users.map { $0.name } let suffix = names.suffix(2) let joined = (names.dropLast(suffix.count) + [suffix.joinWithSeparator(" & ")]).joinWithSeparator(", ") print(joined) // prints Matthew, Mark, Luke & John