在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
含有映射的非零结果transform
在self
”
......所以当Int(String($0))
是nil
时,结果被丢弃。
以上是 在Swift 2.0中将Character转换为Int 的全部内容, 来源链接: utcz.com/qa/423419.html