Swift将Int []转换为Int变量

时间:2017-02-16 12:51:05

标签: ios iphone arrays swift type-conversion

使用Swift 3我得到了一个由数字和反向

创建的Int数组
var rev:String = String(number)
var pro:String = String(rev.characters.reversed())

var myArr = rev.characters.flatMap{Int(String($0))}
myArr = myArr.sorted { $1 < $0 }

现在我想

var myResult = all numbers from array in one variable

让我们说

myArr = [1,2,3,4]
// And i want to myResult = 1234

或者,如果还有其他方法可以反转一个数字,我的意思是正常的整数变量?

4 个答案:

答案 0 :(得分:2)

将十进制数字数组合到一个数字可以完成 简单整数运算:

let digits = [1, 2, 3, 4]
let result = digits.reduce(0, { $0 * 10 + $1 })
print(result) // 1234
  

或者,如果有任何其他方法可以反转一个数字,我的意思是正常的整数变量?

您不需要为此目的进行数组或字符串转换:

func reverse(_ n: Int) -> Int {
    var result = 0
    var n = n // A mutable copy of the given number
    while n > 0 {
        // Append last digit of `n` to `result`:
        result = 10 * result + n % 10  
        // Remove last digit from `n`:
        n /= 10
    }
    return result
}

print(reverse(12345)) // 54321

答案 1 :(得分:1)

为此你可以这样尝试

let myArr = [1,2,3,4]

let myResult = myArr.map(String.init).joined()

如果您希望myResult为Int,那么

let myResult = myArr.map(String.init).joined()
if let intResult = Int(myResult) {
    print(intResult)
}

答案 2 :(得分:0)

您可以将数字映射到字符串,然后连接它们并将字符串转换为Int。

if let result = Int(myArray.map{String($0)}.joined()) {
    //your number
}

答案 3 :(得分:0)

我不能100%确定你想要的东西。如果您只想反转Int,那么Martin R的解决方案可能是最佳选择(使用简单算术)。

现在,如果您想对数字进行排序,然后将其转换为Int,我建议使用以下内容:

let number = 1432
let string = String(String(number).characters.sorted(by: >))

let integerValue = Int(string) // Returns 4321

这将返回一个可选的Int。