首页 > 解决方案 > 有没有办法将二进制字符串转换为 int

问题描述

所以我有一个这样的字符串0b00001有没有办法把它变成一个 Int,我试过这样的东西,

let string = "0b0001"
let int = Int(string)

但由于字符串中有一个“b”来指定它是二进制的,所以它设置intnil.

有什么办法可以将 int 的内容string转换成 int 吗?

标签: swiftstringbinaryinteger

解决方案


是的。您可以使用 BinaryInteger 通用初始化程序,但您需要删除“0b”前缀:

init?<S>(_ text: S, radix: Int = 10) where S : StringProtocol

let str = "0b0101"
let int = Int(str.dropFirst(2), radix: 2)   // 5

推荐阅读