我遇到了一个问题,就是如何将十六进制字符串转换成无符号字节数组或整数数组。
请看这个例子。
String s= "1f5621ff8963545a12152250"; //this is my hex string
我想将这个字符串转换为整型数组。
int buff[]={0x1f,0x56,0x21,0xff,0x89,0x63,0x54,0x5a,0x12,0x15,0x22,0x50};
我该如何做到这一点...
感谢您的帮助。
一种简单的方法:通过将 String
的长度除以 2 计算出您的 int
数组的长度。循环遍历字符串,调用 substring()
创建两个字符的字符串 "1f"、"56" 等。将每个字符串传递给 Integer.parseInt(string, 16)
(第二个参数表示该参数是一个十六进制字符串)。在计算结果时将其存储到数组中。
int
;十进制或十六进制(或八进制或其他)数字的表示仅在输出时发生。如果您想以十六进制打印 int
,那么您必须明确使用 NumberFormat
或 printf()
或简单地使用 Integer.toString(int, 16)
来显示它。 - Ernest Friedman-Hill遍历字符串,每两个元素创建一个整数,格式如下:
0Xmm,其中mm是你刚才扫描的两个元素。
然后增加数组的索引,并继续遍历字符串并添加到数组的当前“顶部”位置。
s
每2个字符拆分并在其前面添加0x
。 - Marcelo