我怎么能将这个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 左右
答案 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个字符长。