PHP - Java从String读取int8

时间:2012-09-17 17:10:33

标签: java php string numbers int

我怎么能将这个PHP代码翻译成Java代码?

protected function readInt24()
{
    $ret = 0;
    if (strlen($this->_input) >= 3)
    {
        $ret  = ord(substr($this->_input, 0, 1)) << 16;
        $ret |= ord(substr($this->_input, 1, 1)) << 8;
        $ret |= ord(substr($this->_input, 2, 1)) << 0;
        $this->_input = substr($this->_input, 3);
    }
    return $ret;
}

$ input是一个非常疯狂的字符串,其中包含utf字符(afaik): 8 左右

1 个答案:

答案 0 :(得分:0)

3 ord(substr($this->_input, ..., ...))检索字符串的前三个字符的ASCII值。然后对于每一个都有一个左移,然后或返回。

这将在Java中翻译为:

public static int readInt24(String input) {
int ret = 0;
if (input.length() >= 3) {
    ret = input.charAt(0) << 16;
    ret |= input.charAt(1) << 8;
    ret |= input.charAt(2) << 0;
}
return ret;
}

请注意,PHP代码会将实例变量_input截断为仅3个字符长。