我正在寻找一种方法来转换长字符串(从转储),它表示十六进制值到一个字节数组.
但为了保持原创,我会用自己的方式来表达它:假设我有一个"00A0BF"我想要解释为的字符串
byte[] {0x00,0xA0,0xBf}
Run Code Online (Sandbox Code Playgroud)
我该怎么办?
我是Java新手,最后使用BigInteger并注意领先的十六进制零.但我觉得它很难看,我确信我错过了一些简单的东西.
我可以用 Java 做到这一点
final byte[] b = new byte[]{0x01, 0x02, 0x04, 0x08,
(byte)0x80, 0x40, 0x20, (byte)0xff,
(byte)0xef, 0x40, 0x30, (byte)0xfe,
0x3f, (byte)0x90, 0x44, 0x78};
Run Code Online (Sandbox Code Playgroud)
而在 Python 2.x 中我可以使用
b = '\x01\x02\x04\x08\x80\x40\x20\xff\xef\x40\x30\xfe\x3f\x90\x44\x78'
Run Code Online (Sandbox Code Playgroud)
Java 语法很痛苦,需要进行(byte)强制转换来处理具有最高有效位设置的值。
有更容易的方法吗?(除了编写一个帮助器类将字符串转换"01020408804020ffef4030fe3f904478" 为 a byte[])
我有一个像这样的字节数组:(这不是实际的字节数组,我修改了它)
[69, 121, 101, 45, 62, 118, 101, 114, 196, 195, 61, 101, 98]
Run Code Online (Sandbox Code Playgroud)
我想知道如何在Java中初始化这个,以便我可以将这个字节数组转换为String?下面的行不起作用.
// this doesn't work
byte[] bytes = [69, 121, 101, 45, 62, 118, 101, 114, 196, 195, 61, 101, 98];
// now convert to string
String data = new String(bytes, StandardCharsets.UTF_8);
Run Code Online (Sandbox Code Playgroud)