如何将字符串转换为UInt8数组?
var str = "test"
var ar : [UInt8]
ar = str
如何将字符串转换为UInt8数组?
var str = "test"
var ar : [UInt8]
ar = str
根据您对非ASCII字符的处理方式不同,有许多不同的方法。
但最简单的代码是使用 utf8
视图:
let string = "hello"
let array: [UInt8] = Array(string.utf8)
请注意,这将导致多字节字符在数组中表示为多个条目,例如:
let string = "é"
print(Array(string.utf8))
打印出[195, 169]
还有一个.nulTerminatedUTF8
,它也可以做同样的事情,但是如果你计划将其作为C字符串传递到某个地方,则会在末尾添加一个空字符(但如果您这样做,您可能还可以使用.withCString
或者使用桥接C函数的隐式转换。
let str = "test"
let byteArray = [UInt8](str.utf8)
swift 4
func stringToUInt8Array(){
let str:String = "Swift 4"
let strToUInt8:[UInt8] = [UInt8](str.utf8)
print(strToUInt8)
}
我来到这个问题,寻找如何将其转换为Int8
数组。这是我的做法,但肯定有一种更简单的方法:
String
扩展的方法public func int8Array() -> [Int8] {
var retVal : [Int8] = []
for thing in self.utf16 {
retVal.append(Int8(thing))
}
return retVal
}
Int
并让 iOS 解决它。 - Dan Rosenstark