arr1 = ["h","e","l","l","o"] as! Any
for i in 0..<arr1.count
{
let newString:String = arr1[i] as! String
let data1:UInt8 = UInt8(newString)!
arr[i] = data1
}
可以通过String
表示Character
来实现UInt8
您可以使用String.UTF8View
,是一种集合类型,现在您可以使用map
轻松转换为UInt8
。如
let charArray: [Character] = ["h","e","l","l","o"]
let arrayUInt8 = String(charArray).utf8.map { (val) -> UInt8 in
return val
}
print(charArray)
//["h", "e", "l", "l", "o"]
print(arrayUInt8)
//[104, 101, 108, 108, 111]
将字符数组转换为UInt8
实际上没有意义,因为某些字符不能仅用 8 位表示,例如 "😀">
不过,这是您将字符转换为[UInt32]
的方式:
let chars: [Character] = ["a", "😀", "c"]
let result = chars.map { UnicodeScalar($0.description)?.value }.filter{ $0 != nil }
或者,您可以使用此方法将字符转换为 UInt8
,但过滤掉那些不能用 8 位表示的字符:
let chars: [Character] = ["a", "😀", "c"]
let result = chars.map { UnicodeScalar($0.description) }.filter { $0 != nil && $0!.isASCII }.map { UInt8($0!.value) }