如何将Int数组转换为String?Swift中的数组

GJZ*_*GJZ 35 arrays casting type-conversion ios swift

我有一个看起来像这样的数组:

var arr: [Int] = [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)

为了打印这个,我想将其转换为:

var newArr: [String?] = ["1","2","3","4","5"]
Run Code Online (Sandbox Code Playgroud)

请帮帮我!提前致谢.

Dun*_*n C 62

Airspeed Velocity给了你答案:

var arr: [Int] = [1,2,3,4,5]

var stringArray = arr.map { String($0) }
Run Code Online (Sandbox Code Playgroud)

或者,如果您希望stringArray属于类型 [String?]

var stringArray = arr.map  { Optional(String($0)) }
Run Code Online (Sandbox Code Playgroud)

这种形式的map语句是Array类型的一种方法.它执行您在数组中的每个元素上提供的闭包,并将所有这些调用的结果组合到一个新数组中.它将一个数组映射到结果数组中.传入的闭包应该返回输出数组中对象类型的对象.

我们可以用更长的形式写它:

var stringArray = arr.map {
  (number: Int) -> String in
  return String(number)
}
Run Code Online (Sandbox Code Playgroud)

编辑:

如果只需要将int值安装到自定义表视图单元格中,则可能应该将数组保留为int,并将值安装到cellForRowAtIndexPath方法的单元格中.

func tableView(tableView: UITableView, 
  cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
  let cell = tableView.dequeueReusableCellWithIdentifier("cell", 
    forIndexPath: indexPath) as! MyCustomCellType
  cell.textLabel?.text = "\(arr[indexPath.row])"
  return cell
}
Run Code Online (Sandbox Code Playgroud)

编辑#2:

如果你想要的只是打印数组,你最好把它作为一个Int对象数组,并简单地打印它们:

arr.forEach { print($0) }
Run Code Online (Sandbox Code Playgroud)


Jar*_*ger 6

更新:斯威夫特 5

您可以使用以下代码执行此操作:

var arr: [Int] = [1,2,3,4,5]
let stringArray = arr.map(String.init)
Run Code Online (Sandbox Code Playgroud)

输出:

["1", "2", "3", "4", "5"]
Run Code Online (Sandbox Code Playgroud)