将字节数组大小减少到原始数据的一半

时间:2012-06-20 06:43:20

标签: java

我有一个长度为14的字节数组。我可以将前两个元素组合成一个,依此类推,使它的大小为7吗? 即< {730C5454000160}>应该看起来像

<{73,0C,54,54,00,01,60}>.

OR 如果不是我有一个字符串“730C5454000160”,我需要它像字节数组

<{73,0C,54,54,00,01,60}>.

请有人帮助我,谢谢。

1 个答案:

答案 0 :(得分:3)

让JDK帮助您:

byte[] bytes = new byte[7];
System.arraycopy( ByteBuffer.allocate(8).putLong( Long.parseLong( s, 16 ) ).array(), 1, bytes, 0, 7);

这是一些测试代码:

public static void main( String[] args ) {
    String s = "730C5454000160";

    byte[] bytes = new byte[7];
    System.arraycopy( ByteBuffer.allocate(8).putLong( Long.parseLong( s, 16 ) ).array(), 1, bytes, 0, 7);

    System.out.println( Arrays.toString(bytes ));
}

输出:

[115, 12, 84, 84, 0, 1, 96]