【问题标题】:Swift - Concatenate Looped ArraysSwift - 连接循环数组
【发布时间】:2015-09-04 07:07:12
【问题描述】:

我只是想知道是否可以连接循环数组并将其附加到单个字符串中?示例:

var name = ["John","Peter","Damian"] 
var age = ["23","21","25"] 
var occupation = ["Plumber","Carpenter","Painter"]

var names = String()
var ages = String()
var occu = String()
var output = String()

    for var i = 0; i < name.count; i++ {
           names = name[i]
           ages = age[i]
           occu = occupation[i]
}
output = String(format:"%@ is %@Years Old, He's a %@.",names,ages,occu)
println(output) //Damian is 25Years Old, He's a Painter.

如果我想在一个字符串中输出所有数组,用“,”或“And”分隔,例如:Damian is 25 Years Old, He's a Painter AND John is 23....... AND Peter is......... 非常感谢!

【问题讨论】:

    标签: arrays swift for-loop


    【解决方案1】:

    这样你就可以做到:

    var name = ["John","Peter","Damian"]
    var age = ["23","21","25"]
    var occupation = ["Plumber","Carpenter","Painter"]
    
    var names = String()
    var ages = String()
    var occu = String()
    var output = String()
    var finalArr = [String]()
    
    for var i = 0; i < name.count; i++ {
    
        names = name[i]
        ages = age[i]
        occu = occupation[i]
        output = "\(names) is \(ages) Years Old, He's a \(occu)."
        finalArr.append(output)   //append every sentence into finalArr
    
    }
    let stringRepresentation = " And ".join(finalArr) // convert finalArr to string.
    

    输出:

    John is 23 Years Old, He's a Plumber. And Peter is 21 Years Old, He's a Carpenter. And Damian is 25 Years Old, He's a Painter.
    

    【讨论】:

      【解决方案2】:

      Swift1.2:

      var name = ["John","Peter","Damian"]
      var age = ["23","21","25"]
      var occupation = ["Plumber","Carpenter","Painter"]
      
      
      let output = " AND ".join(
          map(indices(name), {
              "\(name[$0]) is \(age[$0]) Years Old, He's a \(occupation[$0])"
          })
      ) + "."
      
      println(output)
      
      // John is 23 Years Old, He's a Plumber AND Peter is 21 Years Old, He's a Carpenter AND Damian is 25 Years Old, He's a Painter.
      

      Swift2:

      var name = ["John","Peter","Damian"]
      var age = ["23","21","25"]
      var occupation = ["Plumber","Carpenter","Painter"]
      
      let output = name.indices.map({
          "\(name[$0]) is \(age[$0]) Years Old, He's a \(occupation[$0])"
      }).joinWithSeparator(" AND ") + "."
      
      print(output)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-30
        相关资源
        最近更新 更多