我正在创建一个iPhone应用程序,我需要将一个数字转换为一个整数。
我的代码有一个名为char的变量,它有一个类型字符,但我需要能够对它进行数学运算,因此我认为我需要将它转换为字符串,但是我找不到这样做的方法。
发布于 2019-07-23 12:17:14
在最新的Swift版本中(至少在Swift 5中),有一种更直接的方法来转换Character
实例。Character
具有wholeNumberValue
属性,该属性尝试将字符转换为Int
,如果字符不表示,则返回nil
和整数。
let char: Character = "5"
if let intValue = char.wholeNumberValue {
print("Value is \(intValue)")
} else {
print("Not an integer")
}
发布于 2016-04-22 06:53:32
您可以使用Character
创建一个String
。使用String
,您可以创建一个Int
。
let char: Character = "1"
if let number = Int(String(char)) {
// use number
}
发布于 2018-05-26 18:18:48
如果您使用Swift 4.0的Character
类型的unicodeScalars
属性,则不需要进行String
中间人类型转换。
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 let
s。您也可以直接减去48,而不是通过Unicode.Scalar
转换”0”
。
https://stackoverflow.com/questions/36781776
复制相似问题