**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。
这个问题似乎与help center中定义的范围内的编程无关。
11天前关闭。
Improve this question
所以我写了一些swift代码来反转十六进制字符串,但我觉得一定有一种更优雅的方法来做。
输入:“FCDB4B42”输出“424BDBFC”
var string2 = "FCDB4B42"
// reverse the bytes
print (string2)
var string3 = ""
for i in stride(from: 1, to: string2.count, by: 2).reversed() {
string3 = string3 + string2[i - 1] + string2[i]
}
print(string3) // 424BDBFC
extension String {
subscript(idx: Int) -> String {
String(self[index(startIndex, offsetBy: idx)])
}
}
目的是成对反转它,以更优雅的方式保留字节值(通常有比ForNext循环更好的方法)。
1条答案
按热度按时间wribegjk1#
我不确定它是否更好,但这避免了使用扩展来添加下标运算符:
还有指纹
对于长度为奇数的字符串应该发生什么可能是有争议的:抛出一个错误,返回nil,或者稍微优雅地失败。我选择了后者,如果字符串长度是奇数,将删除第一个字符。我认为原始的解决方案将删除最后一个字符。