如何将字符串拆分为两个字符的组?

时间:2013-11-19 16:31:32

标签: ruby string

有没有办法可以使用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枚举器。

谢谢

3 个答案:

答案 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"]