Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将ASCII转换为十六进制,并在用于Linux的Swift中返回_Linux_Swift - Fatal编程技术网

将ASCII转换为十六进制,并在用于Linux的Swift中返回

将ASCII转换为十六进制,并在用于Linux的Swift中返回,linux,swift,Linux,Swift,我是Swift的新手,但我已经用Java编程一年多了。我想试试Swift,但我没有Mac电脑,所以我使用Linux和开源的Swift软件包。这很好,但是我遇到了大量的错误,看起来大多数常见的修复或实现在Ubuntu操作系统上都不起作用 使用Atom,我有一个程序需要将普通ASCII字符串转换为十六进制代码,然后再转换回相应的ASCII文本。我已使用以下代码将其转换为十六进制: str = str.utf8.map{ $0 }.reduce("") { $0 + String($1

我是Swift的新手,但我已经用Java编程一年多了。我想试试Swift,但我没有Mac电脑,所以我使用Linux和开源的Swift软件包。这很好,但是我遇到了大量的错误,看起来大多数常见的修复或实现在Ubuntu操作系统上都不起作用

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

str = str.utf8.map{ $0 }.reduce("") {
        $0 + String($1, radix: 16, uppercase: false)
     }
我是从另一个问题上得出这个结论的。我很想发表评论并询问如何回去,但我对Stack Overflow还不熟悉,我需要50个声誉来评论任何事情/

我尝试了一个实现的方法,但在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
               ^~~~~~~~~
所以,我不断地搜索,找到了这篇文章。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{
              ^~~~~~
所以我试着迈步(通过:)


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

我对您提供的样本进行了合并和稍加修改,现在可以使用了。您可以访问代码并在IBM Swift沙箱上运行:

//输入文本
var text=“你好”
打印(“文本:”+文本)
//从文本转换->十六进制
设hex=text.utf8.map{$0}.reduce(“”){
$0+字符串($1,基数:16,大写:false)
}
打印(“十六进制:“+十六进制”)
//转换为十六进制->文本
text=“”
设字符=数组(十六进制字符)
让数字=步幅(从:0到:chars.count,按:2).map(){
设twoChars=String(chars[$0..
/home/xxx/xxx/main.swift:36:20: error: cannot invoke 'stride' with argument list of type '(to: Int, by: Int)'
//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)