您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Swift 2.0中将Character转换为Int

在Swift 2.0中将Character转换为Int

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

因为并非所有字符串都可以转换为int,所以此初始化程序是有 问题的 ,这意味着它返回一个 可选的intInt?)而不是一个返回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 2022/1/1 18:12:31 有752人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶