在Swift 2.0中将Character转换为Int

我只想将一个 转换为 。

这应该很简单。但是我没有发现前面的答案有帮助。总是有一些错误。也许是因为我正在Swift 2.0中进行尝试。

for i in (unsolved.characters) {

fileLines += String(i).toInt()

print(i)

}

回答:

在Swift 2.0 toInt()等中,已被初始化程序取代。(在这种情况下,Int(someString)。)

因为并非所有字符串都可以转换为int,所以此初始化程序是有 问题的 ,这意味着它返回一个 可选的int

Int?)而不是一个返回Int。最好的办法是使用来包装此可选内容if let

我不确定您要做什么,但是这段代码可以在Swift 2中使用,并且可以完成我认为您要执行的操作:

let unsolved = "123abc"

var fileLines = [Int]()

for i in unsolved.characters {

let someString = String(i)

if let someInt = Int(someString) {

fileLines += [someInt]

}

print(i)

}

或者,使用更快捷的解决方案:

let unsolved = "123abc"

let fileLines = unsolved.characters.filter({ Int(String($0)) != nil }).map({ Int(String($0))! })

// fileLines = [1, 2, 3]

您可以使用flatMap

let fileLines = unsolved.characters.flatMap { Int(String($0)) }

flatMap返回“一个Array含有映射的非零结果transformself

......所以当Int(String($0))nil时,结果被丢弃。

以上是 在Swift 2.0中将Character转换为Int 的全部内容, 来源链接: utcz.com/qa/423419.html

回到顶部