如何在Python中实现类似Java的类型转换 (byte) (Integer.parseInt(byteArrayStr[i],16))?

0 投票
2 回答
735 浏览
提问于 2025-04-17 07:36

在Java中,我是这样做的,但在Python中该怎么做呢?特别是这一行:bytesArray[i] = (byte) (Integer.parseInt(byteArrayStr[i],16));

  public static byte[] toBytes(String bytes) throws IOException
  {
    String byteArrayStr[] = bytes.split("\\/");
    byte bytesArray[] = new byte[byteArrayStr.length];
    for (int i = 0; i < byteArrayStr.length; ++i)
    {
        bytesArray[i] = (byte) (Integer.parseInt(byteArrayStr[i],16));
    }

    return bytesArray;
  }

2 个回答

1

只需要对你想要转换类型的值进行“调用”就可以了。

>>> stringlist = ['123', '245', '456']
>>> intlist = [int(e) for e in stringlist]
>>> intlist
[123, 245, 456]

如果这个值不适合你想要转换成的类型,可能会出现一个叫做VauleError的错误。

>>> int('hello')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'hello'
3

直接回答就是:int(x, 16)。在Python中,你可以用一个简单的列表推导式来完成这个操作(我假设你的字符串看起来像是af/ce/13/...

l = [int(x, 16) for x in string.split('/')]

撰写回答