我试图将Int分解成其个别数字,例如3489到3 4 8 9,然后我想把数字放在一个Int数组中.
我已经尝试将数字放入一个字符串,然后迭代每个数字,但它不起作用:
var number = "123456" var array = [Int]() for digit in number { array.append(digit) }
有任何想法吗?
更新:Xcode 8.2.1•Swift 3.0.2
您可以创建一个字符数组并将它们映射到Int,如下所示:
let number = "123456" let array = number.characters.flatMap{Int(String($0))} // [1,2,3,4,5,6]
您还可以扩展Integer协议:
extension Int { var array: [Int] { return description.characters.flatMap{Int(String($0))} } } let myInt = 12345 let myIntArray = myInt.array // [1,5]
编辑:由doisk建议,您可以使用flatMap来嵌套结果.
let intArray = [456,827] let nestedInts = intArray.flatMap{$0.array} print(nestedInts) // [4,6,8,7]