Swift:将对象数组转换为字符串?

时间:2016-04-07 22:21:46

标签: arrays string swift

我想将一组用户转换为他们名字的字符串。

例如:

class User {
    var name: String

    init(name: String) {
        self.name = name
    }
}

let users = [
    User(name: "John Smith"),
    User(name: "Jane Doe"),
    User(name: "Joe Bloggs")
]
  1. 这是获取String"John Smith, Jane Doe, Joe Bloggs"的好方法吗?

    let usersNames = users.map({ $0.name }).joinWithSeparator(", ")
    
  2. 如果我想让最后一个逗号成为&符号怎么办?有没有快速的方法,或者我需要编写自己的方法?

1 个答案:

答案 0 :(得分:-1)

  1. 您可以使用reduce

    users.reduce("", combine: { ($0.isEmpty ? "" : $0 + ", ") + $1.name })
    
  2. 试试这个:

    func usersNames() -> String {
        var usersNames = users[0].name
        if users.count > 1 {
            for index in 1..<users.count {
                let separator = index < users.count-1 ? ", " : " & "
                usersNames += separator + users[index].name
            }
        }
        return usersNames
    }
    
相关问题