Ole*_*huk 2 arrays int ios swift swift3
我试图将Int数组转换为Int数字.我现在正在做的是将其转换为String数组,然后使用该joined()函数.有没有更有效的方法来做到这一点?
例:
let sortedIntArray = String(number).characters.map{Int(String($0)) ?? 0}.sorted(by: { $0 > $1 })
let desOrder = Int(sortedIntArray.map{String($0)}.joined())!
Run Code Online (Sandbox Code Playgroud)
在您的情况下,sortedIntArray是一个单位数字的数组,然后您可以组合它们而不转换为字符串:
let sortedIntArray = [4, 2, 1]
let result = sortedIntArray.reduce(0) { 10 * $0 + $1 }
print(result) // 421
Run Code Online (Sandbox Code Playgroud)
结合dfri优雅的解决方案将数字拆分为整数数组:
let number = 1439
let descDigits = sequence(state: number, next: { (num: inout Int) -> Int? in
return num > 0 ? (num % 10, num /= 10).0 : nil
}).sorted(by: >)
print(descDigits) // [9, 4, 3, 1]
let descNumber = descDigits.reduce(0) { 10 * $0 + $1 }
print(descNumber) // 9431
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |