Swift中的字符算法
考虑以下代码段,将十六进制字符转换为整数值Swift中的字符算法,swift,Swift,考虑以下代码段,将十六进制字符转换为整数值 extension Character { var hexValue : UInt { let zero : Character = "0" let nine : Character = "9" let a : Character = "a" let f : Character = "f" let A : Character = "A" let F
extension Character {
var hexValue : UInt {
let zero : Character = "0"
let nine : Character = "9"
let a : Character = "a"
let f : Character = "f"
let A : Character = "A"
let F : Character = "F"
if self >= zero && self <= nine {
return self - zero
}
if self >= a && self <= f {
return self - a + 10
}
if self >= A && self <= F {
return self - A + 10
}
return 0
}
}
扩展字符{
var hexValue:UInt{
设为零:Character=“0”
设9:Character=“9”
设a:Character=“a”
设f:Character=“f”
设A:Character=“A”
设F:Character=“F”
如果self>=zero&&self=a&&self=a&&self我在搜索Swift标题时找到了答案。我们可以使用UnicodeScalar
进行此操作,如下所示:
UnicodeScalar("a").value
value
将为您提供字符整数值
extension Character {
var hexValue : UInt {
let zero : Character = "0"
let nine : Character = "9"
let a : Character = "a"
let f : Character = "f"
let A : Character = "A"
let F : Character = "F"
if self >= zero && self <= nine {
return self - zero
}
if self >= a && self <= f {
return self - a + 10
}
if self >= A && self <= F {
return self - A + 10
}
return 0
}
}
要转换任意字符
,可以执行以下操作
let s = String(myChar).unicodeScalars
let i = scalars[s.startIndex].value
请尝试NSScanner:
var hexChar = "A"
var hexValue:UInt32 = 0
let scanner = NSScanner(string: hexChar)
scanner.scanHexInt(&hexValue)
println(hexValue) // prints 10