在swift 2中,将十六进制字符串转换为ascii等价物的最佳方法是什么.
let str1 = "0x4d 0x4c 0x4e 0x63"
let str2 = "4d 4c 4e 63"
let str3 = "4d4c4e63"
let str4 = "4d4d 4e63"
let str5 = "4d,4c,4e,63"
Run Code Online (Sandbox Code Playgroud)
我们想运行一个吐出的函数(或字符串扩展名):'MLNc',它是十六进制字符串的ascii等价物
strtoulfunc hexStringtoAscii(hexString : String) -> String {
let hexArray = split(hexString.characters) { $0 == " "}.map(String.init)
let numArray = hexArray.map{ strtoul($0, nil, 16) }.map{Character(UnicodeScalar(UInt32($0)))}
return String(numArray)
}
Run Code Online (Sandbox Code Playgroud)
这部分实现是否在正确的路径上?如果是这样,处理分块的最佳方法是什么?
Python有两个非常有用的库方法(binascii.a2b_hex(keyStr)和binascii.hexlify(keyBytes)),我一直在Swift中苦苦挣扎.Swift中有什么随处可用的吗?如果没有,将如何实现它?给定所有边界和其他检查(如偶数长度键).