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