我有一串数字,这些数字由零“97 189 254 229 193 189 3”分隔,我想创建一个数组,其中每个条目的数据类型为UInt8,如下所示:[97,189,254] ,229,193,189,37,51,3]。
我试过这个
let TextInt = UInt8(TextString.characters.split{$0 == " "}.map(String.init))
其中TextInt数组和TextString是字符串,但是我得到错误无法使用类型'([String])'
的参数列表调用类型'UInt8'的初始值设定项答案 0 :(得分:1)
let word = "97 189 254 229 193 189 3"
let nums = word.characters.split(" ").flatMap { UInt8(String($0)) }
我正在使用flatMap
,因为它会自动放弃nil
值。因此,如果输入字符串的块是无法转换为UInt8
的内容,则会自动将其丢弃。
这也可以使nums
的类型为[UInt8]
而不 [UInt8?]
。