在Swift中从String转换为Uint8的数组

时间:2016-01-07 00:13:25

标签: string swift tokenize

我有一串数字,这些数字由零“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'的初始值设定项

1 个答案:

答案 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?]