使用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
或者,如果还有其他方法可以反转一个数字,我的意思是正常的整数变量?
答案 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。