gpt4 book ai didi

linux - 将 ASCII 转换为 HEX 并返回 Swift for Linux

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:46:35 25 4
gpt4 key购买 nike

我对 Swift 还很陌生,但我已经使用 Java 编程一年多了。我想尝试 Swift,但我没有 Mac,所以我改用 Linux 和开源的 Swift 包。这很好,但我遇到了大量错误,而且大多数常见的修复或实现似乎在 Ubuntu 操作系统上不起作用。

使用 Atom,我有一个程序需要将普通的 ASCII 字符串转换为十六进制代码,然后再转换回相应的 ASCII 文本。我已经设法使用此代码将其转换为十六进制:

str = str.utf8.map{ $0 }.reduce("") {
$0 + String($1, radix: 16, uppercase: false)
}

我从另一个问题中得到了这个 here .我很想发表评论并询问如何返回,但我是 Stack Overflow 的新手,我需要 50 个声誉才能发表任何评论。 :/

我尝试了一个实现的方法 here ,但我在 Atom 中遇到以下错误:

/home/xxx/xxx/main.swift:15:20: error: cannot convert value of type 'String' to type 'NSSTring' in coercion
let nsString = hexString as NSString
^~~~~~~~~

于是,我继续寻找并找到了this邮政。 OP 的版本给了我大约 8 个错误,然后我尝试了@Shripada 的版本,Atom 给了我这个错误:

/home/xxx/xxx/main.swift:36:20: error: 'stride(from:to:by:)' is unavailable: call the 'stride(to:by:)' method instead
let numbers = stride(from: 0, to:chars.count, by: 2).map{
^~~~~~

所以我尝试了 stride(to:by:)...

/home/xxx/xxx/main.swift:36:20: error: cannot invoke 'stride' with argument list of type '(to: Int, by: Int)'

到目前为止,我已经在这里搜索了很多帖子,但仍然找不到单一的解决方案...非常感谢任何帮助,谢谢。

最佳答案

我结合并稍微修改了您提供的示例,现在可以使用了。您可以访问代码并在 IBM Swift Sandbox 上运行它 here :

//Input text
var text = "Hello"
print("Text: " + text)

// Convert from text -> hex
let hex = text.utf8.map{ $0 }.reduce("") {
$0 + String($1, radix: 16, uppercase: false)
}
print("Hex: " + hex)

//Convert from hex -> text
text = ""
let chars = Array(hex.characters)
let numbers = stride(from: 0, to: chars.count, by: 2).map() {
let twoChars = String(chars[$0 ..< min($0 + 2, chars.count)])
text.append(String(describing: UnicodeScalar(Int(twoChars, radix: 16)!)!))
}

print("Text: " + text)

关于linux - 将 ASCII 转换为 HEX 并返回 Swift for Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36441684/

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