首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Swift中将字符转换为整数

在Swift中将字符转换为整数
EN

Stack Overflow用户
提问于 2016-04-22 06:50:13
回答 3查看 31.4K关注 0票数 29

我正在创建一个iPhone应用程序,我需要将一个数字转换为一个整数。

我的代码有一个名为char的变量,它有一个类型字符,但我需要能够对它进行数学运算,因此我认为我需要将它转换为字符串,但是我找不到这样做的方法。

EN

回答 3

Stack Overflow用户

发布于 2019-07-23 12:17:14

在最新的Swift版本中(至少在Swift 5中),有一种更直接的方法来转换Character实例。Character具有wholeNumberValue属性,该属性尝试将字符转换为Int,如果字符不表示,则返回nil和整数。

代码语言:javascript
运行
复制
let char: Character = "5"
if let intValue = char.wholeNumberValue {
    print("Value is \(intValue)")
} else {
    print("Not an integer")
}
票数 38
EN

Stack Overflow用户

发布于 2016-04-22 06:53:32

您可以使用Character创建一个String。使用String,您可以创建一个Int

代码语言:javascript
运行
复制
let char: Character = "1"
if let number = Int(String(char)) {
    // use number    
}
票数 32
EN

Stack Overflow用户

发布于 2018-05-26 18:18:48

如果您使用Swift 4.0的Character类型的unicodeScalars属性,则不需要进行String中间人类型转换。

代码语言:javascript
运行
复制
let myChar: Character = "3"
myChar.unicodeScalars.first!.value - Unicode.Scalar("0")!.value // 3: UInt32

这使用了一个在C代码中常见的技巧,即减去char ’0’文字的值,将ASCII值转换为十进制值。有关转换,请访问以下站点:https://www.asciitable.com

此外,在我的答案中还有一些隐含的展开。为了避免出现这种情况,您可以使用CharacterSet.decimalDigits验证您是否有十进制数字,和/或在first属性周围使用guard lets。您也可以直接减去48,而不是通过Unicode.Scalar转换”0”

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36781776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档