gpt4 book ai didi

swift - 如何在 Swift 2.2+ 中处理字符串的每两个字符的子字符串?

转载 作者:行者123 更新时间:2023-11-28 12:52:09 25 4
gpt4 key购买 nike

不再支持 C 风格的 for 循环,那么这个旧的十六进制解码器在 Swift 2.2+ 中会是什么样子呢?

let data = NSMutableData(capacity: trimmedString.characters.count / 2)
for var index = trimmedString.startIndex; index < trimmedString.endIndex; index = index.successor().successor() {
let byteString = trimmedString.substringWithRange(Range<String.Index>(start: index, end: index.successor().successor()))
let num = UInt8(byteString.withCString { strtoul($0, nil, 16) })
data!.appendBytes([num] as [UInt8], length: 1)
}

最佳答案

使用步幅:

for index in 0.stride(through: trimmedString.characters.count, by: 2) {
// ...
}

要从 index 创建 Range,请使用字符串的 startIndex 并推进它。示例:

trimmedString.startIndex.advancedBy(index)
trimmedString.startIndex.advancedBy(index).successor().successor()

等只需检查以确保您没有越界 successor()

关于swift - 如何在 Swift 2.2+ 中处理字符串的每两个字符的子字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36155302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com