gpt4 book ai didi

swift - 在 Swift 2.0 中将字符转换为 Int

转载 作者:IT王子 更新时间:2023-10-29 05:05:15 30 4
gpt4 key购买 nike

我只想将一个字符转换成一个Int

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

for i in (unsolved.characters) {
fileLines += String(i).toInt()
print(i)
}

最佳答案

在 Swift 2.0 中,toInt() 等已被初始化器取代。 (在本例中,Int(someString)。)

因为不是所有的字符串都可以转换为整数,所以这个初始化器是可失败的,这意味着它返回一个可选的整数 (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)
}

或者,对于 Swiftier 解决方案:

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 over self 的非零结果”……所以当Int(String($0))nil时,结果被丢弃。

关于swift - 在 Swift 2.0 中将字符转换为 Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30771119/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com