我有以下代码将字符串拆分为 3 个字节的组:
str="hello"
ix=0, iy=0
bytes=[]
tby=[]
str.each_byte do |c|
if iy==3
iy=0
bytes[ix]=[]
tby.each_index do |i|
bytes[ix][i]=tby[i]
end
ix+=1
end
tby[iy]=c
iy+=1
end
puts bytes
我基于这个例子:http://www.ruby-forum.com/topic/75570 http://www.ruby-forum.com/topic/75570
但是我从中收到类型错误。谢谢。
ix = 0, iy = 0
翻译为ix = [0, (iy = 0)]
,这就是您收到类型错误的原因。
然而,有一种不太“程序化”的方式来做你想做的事情:
对于红宝石 1.8.7+:
"hello world".each_byte.each_slice(3).to_a
#=> [[104, 101, 108], [108, 111, 32], [119, 111, 114], [108, 100]]
对于红宝石 1.8.6:
require 'enumerator'
"hello world".enum_for(:each_byte).enum_for(:each_slice, 3).to_a
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)