Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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
Ruby 操作字节数组_Ruby_String - Fatal编程技术网

Ruby 操作字节数组

Ruby 操作字节数组,ruby,string,Ruby,String,我有一个简单的字节数组 ["\x01\x01\x04\x00"] 我不确定如何只改变字符串中的第二个值,因为我知道数组只有一个项,同时仍然将对象保留为字节数组 大致如下: ["\x01#{ARGV[0]}\x04\x00"] 使用每个字节字符串方法: $ irb --simple-prompt >> str = "\x01\x01\x04\x00" => "\001\001\004\000" >> str.each_byte {|byte| puts byte}

我有一个简单的字节数组

["\x01\x01\x04\x00"]
我不确定如何只改变字符串中的第二个值,因为我知道数组只有一个项,同时仍然将对象保留为字节数组

大致如下:

["\x01#{ARGV[0]}\x04\x00"]
使用每个字节字符串方法:

$ irb --simple-prompt
>> str = "\x01\x01\x04\x00"
=> "\001\001\004\000"
>> str.each_byte {|byte| puts byte}
1
1
4
0
=> "\001\001\004\000"
>>

我认为秘密在于你有一个嵌套数组:

irb(main):002:0> x = ["\x01\x02\x01\x01"]
=> ["\001\002\001\001"]
您可以为其编制索引:

irb(main):003:0> x[0][1]
=> 2
您可以在其中分配:

irb(main):004:0> x[0][1] = "\x05"
=> "\005"
看起来就像你想要的:

irb(main):005:0> x
=> ["\001\005\001\001"]

去掉数组包装器可能不会那么混乱

a = ["\x01\x01\x04\x00"]
a = a[0]

a[1] = ...
始终可以将字符串放回数组中:

a = [a]

另外,从技术上讲,它不是字节数组,而是一个元素数组,带有字符串对象。严格来说,Ruby并没有真正的类型数组;所有Ruby数组都类似于其他地方的对象数组。

无需等待。。。我不认为我已经很清楚了,我只是想替换第二个值,它都是字节数组的一部分,所以它将以字节的形式输出。。。也许我离这里太远了。。。不过你可能有一个完美的答案+1@jpsilvashy:如果您将上述信息添加到问题中就好了。原来的有点模糊。哇,谢谢布伦特,这部作品变化很好,谢谢你为我的简单小问题提供了优雅的解决方案。嘿!这也是一个非常好的解决方案。使字符串更易于管理。感谢您对Ruby中数组的深入了解+1.