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

时间:2015-06-23 13:21:58

标签: ios arrays swift casting type-conversion

我有一个如下所示的数组:

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

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

var newArr: [String?] = ["1","2","3","4","5"]

请帮帮我!提前谢谢。

5 个答案:

答案 0 :(得分:54)

Airspeed Velocity给了你答案:

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

var stringArray = arr.map { String($0) }

或者,如果您希望stringArray的类型为[String?]

var stringArray = arr.map  { Optional(String($0)) }

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

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

var stringArray = arr.map {
  (number: Int) -> String in
  return String(number)
}

编辑:

如果您只需要将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
}

编辑#2:

如果您想要打印数组,最好将其作为Int对象数组保留,只需打印它们:

arr.forEach { print($0) }

答案 1 :(得分:2)

你应该使用

 cell.textLabel?.text = "\(arr[indexPath.row])"

为了将标签中的值显示为String。

答案 2 :(得分:2)

更新:Swift 5

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

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

输出:

["1", "2", "3", "4", "5"]

答案 3 :(得分:0)

使用以下代码在适当的位置进行操作:

Array(0...100).map { String($0) }

答案 4 :(得分:0)

像这样声明您的整数数组:

let integerArray = [1 , 2 ,4 ,5]

打印这样的类型转换数组:

print(integerArray.map { String($0) })

您可以尝试将类型转换为Float,Double,Int8等任何数据类型,这里map将从数组中获取每个元素并更改为提到的数据类型,然后将其分配回您的数组中。