获取字符串长度的第一个字节

时间:2015-05-22 09:33:25

标签: php ruby byte strlen chr

我开始学习Ruby而且我遇到了困难,我尝试过很多东西,但无法解决问题。

我在PHP中获得了这段代码:

chr(strlen("root") & 0xFF);
chr(strlen("root") >> 8 & 0xFF);    

我需要将其更改为ruby。

Ruby chr函数不允许我>> 8 & 0xFF& 0xFF,我不知道为什么。

我也不知道这些功能是什么,但我确定我需要它们才能使我的代码正常工作。

如果有人可以帮助我,解释并给我正确的功能会很棒,谢谢。

1 个答案:

答案 0 :(得分:0)

我不知道我是否理解你的问题,但你可以像这样使用你的字符串

string.bytes

并且每个字节都有一个数组。并且,要获取任何字节的字符,您可以使用

byte.chr

例如:

bytes_array = "I want a byte".bytes
=> [73, 32, 119, 97, 110, 116, 32, 97, 32, 98, 121, 116, 101]

并且,将第一个字节带回char,

bytes_array[0].char
=> "I"

例如,如果你想要前4个字节的字符,你可以这样做:

string = ""
bytes_array[0..3].each do |b|
  string << b.chr
end

你将拥有字符串

=> "I wa"

我希望有所帮助。