String msg="[104,-62,57,-106,119,81,32,71,102,-48,-71,38,0,8,8,0,0,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,19,23,22,18,34,36,32,70,52,69,48,48,8,8,-12,-4,40,0,0,0,1,-18,-18,-18,-94,-64,22]";
这个是获取的字符串,该怎么转成16进制字符串呢?
或者转化成
byte msgs[]=
{104,-62,57,-106,119,81,32,71,102,-48,-71,38,0,8,8,0,0,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,19,23,22,18,34,36,32,70,52,69,48,48,8,8,-12,-4,40,0,0,0,1,-18,-18,-18,-94,-64,22}
也可以
你可以使用以下步骤将字符串 msg 转换为16进制字符串:
将字符串 msg 转换为字节数组,可以使用 Arrays.toString(msg.getBytes())
将字节数组中每个字节转换为 16 进制字符串,可以使用 Integer.toHexString(byteValue)
将转换后的字符串拼接起来得到最终的16进制字符串
例如:
byte[] bytes = msg.getBytes();
StringBuilder hexString = new StringBuilder();
for (byte b : bytes) {
hexString.append(Integer.toHexString(b & 0xff));
}
String result = hexString.toString();
注意:转换后的字符串可能会有一些前导0,如果需要去掉可以使用 string.replaceFirst("^0+(?!$)", "")