swift2 将字符串数组转换为整数数组Swift 2?

zyfwsgd6  于 2022-11-06  发布在  Swift
关注(0)|答案(4)|浏览(174)

[Xcode 7.1,iOS 9.1]
我有一个数组:String
我想把它(每个索引)转换成一个整数,这样我就可以用它来从一个计时器倒计时,相应的索引。
如何在Swift 2中将String数组转换为Int数组?
我试了几个链接,没有一个能用,而且都给了我一个错误。链接中的大部分代码都过时了,或者还没有更新到swift 2,比如toInt()方法。

ne5o7dgx

ne5o7dgx1#

使用map函数

let array = ["11", "43", "26", "11", "45", "40"]
let intArray = array.map { Int($0)!} // [11, 43, 26, 11, 45, 40]

UIViewController之类的类中使用

let array = ["11", "43", "26", "11", "45", "40"]
var intArray = Array<Int>!

override func viewDidLoad() {
  super.viewDidLoad()
  intArray = array.map { Int($0)!} // [11, 43, 26, 11, 45, 40]
}

如果数组包含不同的类型,您可以使用flatMap(Swift 2)或compactMap(Swift 4.1+)来仅考虑可转换为Int的项

let array = ["11", "43", "26", "Foo", "11", "45", "40"]
let intArray = array.compactMap { Int($0) } // [11, 43, 26, 11, 45, 40]
up9lanfz

up9lanfz2#

雨燕4、5

使用compactMap并强制转换为Int,解决方案不带“!”。

let array = ["1","foo","0","bar","100"]
let arrayInt = array.compactMap { Int($0) }

print(arrayInt)
// [1, 0, 100]
js4nwp54

js4nwp543#

雨燕4、5

如果你想把字符串数字转换成int类型的数组(在一个我曾经经历过的特殊情况下),最快的方法是:

let pinString = "123456"
let pin = pinString.map { Int(String($0))! }

而对于你的问题是:

let pinArrayString = ["1","2","3","4","5","6"]
let pinArrayInt = pinArrayString.map { Int($0)! }
7gs2gvoe

7gs2gvoe4#

我建议用一种不同的方法

let stringarr = ["1","foo","0","bar","100"]
let res = stringarr.map{ Int($0) }.enumerate().flatMap { (i,j) -> (Int,String,Int)? in
    guard let value = j else {
        return nil
    }
    return (i, stringarr[i],value)
}
// now i have an access to (index in orig [String], String, Int) without any optionals and / or default values
print(res)
// [(0, "1", 1), (2, "0", 0), (4, "100", 100)]

相关问题