【问题标题】:Converting from String to array of Uint8 in Swift在 Swift 中从字符串转换为 Uint8 数组
【发布时间】:2016-01-07 00:13:25
【问题描述】:

我有一串数字,它们用零分隔,例如“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 是字符串,但我得到错误 cannot invoke initializer for type 'UInt8' with an argument list of type '([String])'

【问题讨论】:

  • 该字符串中没有零。你的意思是用空格隔开吗?

标签: string swift tokenize


【解决方案1】:

这个怎么样?

let word = "97 189 254 229 193 189 3"

let nums = word.characters.split(" ").flatMap { UInt8(String($0)) }

注意事项

我正在使用flatMap,因为它会自动丢弃nil 值。因此,如果输入字符串的 chunk 是无法转换为 UInt8 的内容,则会自动丢弃。

这也使得nums 的类型可以是[UInt8]不是 [UInt8?]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-07
    • 1970-01-01
    • 2015-08-26
    相关资源
    最近更新 更多