我对ruby还是很陌生,目前正在尝试编写一个简单的ruby程序,该程序从文件中读取1个字节的块,并生成一个频率列表,该列表列出了每个块被看到的次数。但是,首先,我只是尝试用读取的1个字节索引对应于每个可能的字节值的256个字节的数组。
看来问题是to_i函数不会根据其二进制值转换字符,即'A'变为0而不是它的ascii编码65。在ruby中是否内置了其他函数,我可以在这里使用?
freq = Array(0..255)
File.open('temp.dat') do |file|
until file.eof?
buf = file.read(1)
puts "#{freq.at(buf.to_i)}"
end
end
您正在寻找String#ord
方法:
# ⇓⇓⇓
puts "#{freq.at(buf.ord)}"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句