kliuhjw
你狗哥
采纳率100%
2020-01-10 09:54

byte类型怎么转成byte数组

10
已采纳

有一个String

String e = "aa";

aa为十六进制数,通过方法把它转成byte

public static byte hextobyte(String in) {
        return (byte) Integer.parseInt(in, 16);

    }

转出后得到一个byte

byte f = hextobyte(e);

问:
现在要进行byte拼接
原先有一个byte

byte[] a = new byte[] { 0x01, (byte) 0xFF, 0x0A, 0x00, (byte) 0xAA, 0x13,};

现在要把byte f 和byte[] a进行拼接
怎么讲byte f转成byte 数组!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

7条回答

  • weixin_44700117 「已注销」 1年前

    试一下下面这种方式

    byte[] a = new byte[] { 0x01, (byte) 0xFF, 0x0A, 0x00, (byte) 0xAA, 0x13};
    byte f = 0x02;
    int lengA = a.length;
    byte[] b = new byte[lengA*2];
    System.arraycopy(a,0,b,0,lengA);
    b[lengA]= f;
    
    
    点赞 1 评论 复制链接分享
  • dabocaiqq dabocaiqq 1年前

    问题解决请点采纳,急需C币下载。

    arraycopy(原数组, 原数组的开始位置, 目标数组, 目标数组的开始位置, 拷贝个数)

    byte[] a = new byte[] { 0x01, (byte) 0xFF, 0x0A, 0x00, (byte) 0xAA, 0x13,};
    byte[] temp =  new byte[a.length + 1];
    byte f = hextobyte(e);
    System.arraycopy(a, 0, temp, 0, a.length);
    temp[a.length] = f;
    a = f;
    
    点赞 4 评论 复制链接分享
  • adaloceyou palhotel 1年前

    自己写个函数很简单,就是重新创建一个更大的数组,拷贝过去。
    但是我们做应用开发的,追求的目标就要写那种一句话程序,链式调用的,读起来像英语句子一样流畅。你可以使用随便一个ArrayUtils,优雅一点。

    Byte[] arr = new Byte[]{1,2,3};
    ArrayUtils.add(arr, 4);
    

    只需要引用一个Jar包

    <dependency>
    <groupId>commons-lang</groupId>
    <artifactId>commons-lang</artifactId>
    <version>${commons-lang.version}</version>
    </dependency>
    
    点赞 1 评论 复制链接分享
  • qq_39019765 打杂的程序员 1年前

    再声明个数组嘛,长度加1,把那个加进去

    点赞 1 评论 复制链接分享
  • weixin_39267497 小小小小小小小阳 1年前

    你可以把 byte f = hextobyte(e); 改写成byte[] f = new byte[]{hextobyte(e)};
    byte[] a = new byte[] { 0x01, (byte) 0xFF, 0x0A, 0x00, (byte) 0xAA, 0x13};
    byte[] data3 = new byte[f.length + a.length];

    System.arraycopy(f, 0, data3, 0, f.length);
    System.arraycopy(a, 0, data3, f.length, a.length);

        最终得到的data3 就是你想要的结果,进行了拼接
    
    点赞 评论 复制链接分享
  • lty2017 lty2017 1年前

    aa是两个字符,单个char才能转byte.直接强转(byte)e[0]
    拷贝的话aa是2个字节+f字节数组.Length=MaxLength
    var max = new byte[MaxLength];
    arraycopy(f,max,f.length);arraycopy(aa,f.length,max,0,aa.length);

    点赞 评论 复制链接分享
  • phoenix20159 九头蛇daze 1年前

    新建一个比较大的数组,记录数组结尾位置,在数组末尾加数据:

    byte a[]=new byte[1024]; 
    a[index] = f;
    
    点赞 评论 复制链接分享

为你推荐