有没有办法可以使用map方法从字符串中提取“字节”?
例如,这是我的原始数组:
array = ["7e01133200000bb8f67e"]
我想使用map方法获取以下数组:
mapped_array = ["7e", "01", "13", "32", "00", "00", "0b", "b8", "f6", "7e" ]
这可能吗?
我现在正在做的是:
num = 0
new_array = []
(array[0][2..-3].length/2).times do
new_array << array[0][2..-3][num,2]
num += 2
end
它可以工作但我想尽可能使用Ruby枚举器。
谢谢
答案 0 :(得分:6)
您可以使用scan
...
arr.first.scan(/../)
1.9.3p448 :114 > arr.first.scan(/../)
=> ["7e", "01", "13", "32", "00", "00", "0b", "b8", "f6", "7e"]
答案 1 :(得分:3)
array = ["7e01133200000bb8f67e"]
array.first.chars.each_slice(2).to_a.map(&:join)
#=> ["7e", "01", "13", "32", "00", "00", "0b", "b8", "f6", "7e"]
答案 2 :(得分:1)
new, old = [], ["7e01133200000bb8f67e"]
new << old.first.slice!(0,2) until old.first.empty?
p new #=> ["7e", "01", "13", "32", "00", "00", "0b", "b8", "f6", "7e"]