两个字节数组怎么合成一个字节数组啊

时间:2023-01-11 17:17:20


有两个字节数组一个是g_data,,一个是g_data2。我想把g_data2添加到g_data的后面,合成一个数组

我不知道该怎么做

12 个解决方案

#1



    public static void main(String args[]) {
        int[] i1 = new int[] {1,2,3,4};
        int[] i2 = new int[] {5,6,7};
        int[] i3 = new int[i1.length+i2.length] ;
        System.arraycopy(i1, 0, i3, 0, i1.length);
        System.arraycopy(i2, 0, i3, i1.length, i2.length);
        for (int i = 0; i < i3.length; i++) {
            System.out.println(i3[i]);
        }
    }

#2


把两个data先转换成字符串..

然后把两个字符串连接起来.

再用 getBytes( )方法分成字符数组.

#3


byte[] b1=new byte[30];
byte[] b2=new byte[20];

for(int i=0;i<10;i++){
    b1[i]=(byte)i;
}

for(int x=0;x<b2.length;x++){
                    b2[x]=(byte)x;
                }

System.arraycopy(b2, 0, b1, 10, b2.length);
for(int i=0;i<b1.length;i++){
                     System.out.println(b1[i]);
                }

#4


你可以这样,不要用两个字节数组,直接用一个list,把你需要的元素都add到list中,然后toArray(),返回一个字节数组

#5


两种方法:
1.用System的arraycopy
       public static void main(String[] args) {
byte[] a = new byte[]{1,2,3};
byte[] b = new byte[]{4,5,6};
byte[] c = new byte[a.length+b.length];
System.arraycopy(a,0, c, 0, a.length);
System.arraycopy(b,0, c, a.length, b.length);
for(byte test : c) {
System.out.println(test);
}

}
2.用Apache的commons-lang包。这个包包含了N多的工具包,是我非常向大家推荐的。
下载地址:http://commons.apache.org/downloads/download_lang.cgi
代码如下:
     public static void main(String[] args) {
byte[] a = new byte[]{1,2,3};
byte[] b = new byte[]{4,5,6};
a = ArrayUtils.addAll(a, b);
for(byte test : a) {
System.out.println(test);
}
}

#6


数组的copy 方法
把2个数组分别copy到新数组的指定位置

#7


看你要怎么合并 纯粹追加就不多说了 否则一般位操作可以满足
将字节数组原型为两字节之间的操作 

(a & b) & 0xff

#8


1.
把两个data先转换成字符串.. 

然后把两个字符串连接起来. 

再用 getBytes( )方法分成字符数组.
2.
 直接copy 到一个字符数组中去


#9


我没说的太明白


实际上是本来有一个固定的数组g_data,而g_data2是通过for循环取道的,for循环取多少个不确定,每次都不一样,我想把for取道的每个数组都添加到g_data的后面合成一个大数组

#10


用我给你说的第二中方法。代码如下:
       public static void main(String[] args) {
byte[] g_data = new byte[]{1,2,3};
byte[] b = new byte[]{4,5,6};
for(byte g_data2 : b){
g_data = ArrayUtils.add(g_data, g_data2);
}
for(byte test : g_data) {
System.out.println(test);
}
}

#11


谢谢大家,回帖这么快
我基本上都明白了,结帖了

#12


引用 1 楼 anqini 的回复:
Java code
    public static void main(String args[]) {
        int[] i1 = new int[] {1,2,3,4};
        int[] i2 = new int[] {5,6,7};
        int[] i3 = new int[i1.length+i2.length] ;
        System.arraycopy(i1, 0, i3, 0, i1.length);
        System.arraycopy(i2, 0, i3, i1.length, i2.length);
        for (int i = 0; i < i3.length; i++) {
            System.out.println(i3[i]);
        }

答: Kimi的方法好!顶一个。理由:在JDK本身的类库源代码中,当空间大小扩大时,经常采用的代码就是类似Kimi给出的代码。SUN都这样用,我们参考参考更应该了。

#1



    public static void main(String args[]) {
        int[] i1 = new int[] {1,2,3,4};
        int[] i2 = new int[] {5,6,7};
        int[] i3 = new int[i1.length+i2.length] ;
        System.arraycopy(i1, 0, i3, 0, i1.length);
        System.arraycopy(i2, 0, i3, i1.length, i2.length);
        for (int i = 0; i < i3.length; i++) {
            System.out.println(i3[i]);
        }
    }

#2


把两个data先转换成字符串..

然后把两个字符串连接起来.

再用 getBytes( )方法分成字符数组.

#3


byte[] b1=new byte[30];
byte[] b2=new byte[20];

for(int i=0;i<10;i++){
    b1[i]=(byte)i;
}

for(int x=0;x<b2.length;x++){
                    b2[x]=(byte)x;
                }

System.arraycopy(b2, 0, b1, 10, b2.length);
for(int i=0;i<b1.length;i++){
                     System.out.println(b1[i]);
                }

#4


你可以这样,不要用两个字节数组,直接用一个list,把你需要的元素都add到list中,然后toArray(),返回一个字节数组

#5


两种方法:
1.用System的arraycopy
       public static void main(String[] args) {
byte[] a = new byte[]{1,2,3};
byte[] b = new byte[]{4,5,6};
byte[] c = new byte[a.length+b.length];
System.arraycopy(a,0, c, 0, a.length);
System.arraycopy(b,0, c, a.length, b.length);
for(byte test : c) {
System.out.println(test);
}

}
2.用Apache的commons-lang包。这个包包含了N多的工具包,是我非常向大家推荐的。
下载地址:http://commons.apache.org/downloads/download_lang.cgi
代码如下:
     public static void main(String[] args) {
byte[] a = new byte[]{1,2,3};
byte[] b = new byte[]{4,5,6};
a = ArrayUtils.addAll(a, b);
for(byte test : a) {
System.out.println(test);
}
}

#6


数组的copy 方法
把2个数组分别copy到新数组的指定位置

#7


看你要怎么合并 纯粹追加就不多说了 否则一般位操作可以满足
将字节数组原型为两字节之间的操作 

(a & b) & 0xff

#8


1.
把两个data先转换成字符串.. 

然后把两个字符串连接起来. 

再用 getBytes( )方法分成字符数组.
2.
 直接copy 到一个字符数组中去


#9


我没说的太明白


实际上是本来有一个固定的数组g_data,而g_data2是通过for循环取道的,for循环取多少个不确定,每次都不一样,我想把for取道的每个数组都添加到g_data的后面合成一个大数组

#10


用我给你说的第二中方法。代码如下:
       public static void main(String[] args) {
byte[] g_data = new byte[]{1,2,3};
byte[] b = new byte[]{4,5,6};
for(byte g_data2 : b){
g_data = ArrayUtils.add(g_data, g_data2);
}
for(byte test : g_data) {
System.out.println(test);
}
}

#11


谢谢大家,回帖这么快
我基本上都明白了,结帖了

#12


引用 1 楼 anqini 的回复:
Java code
    public static void main(String args[]) {
        int[] i1 = new int[] {1,2,3,4};
        int[] i2 = new int[] {5,6,7};
        int[] i3 = new int[i1.length+i2.length] ;
        System.arraycopy(i1, 0, i3, 0, i1.length);
        System.arraycopy(i2, 0, i3, i1.length, i2.length);
        for (int i = 0; i < i3.length; i++) {
            System.out.println(i3[i]);
        }

答: Kimi的方法好!顶一个。理由:在JDK本身的类库源代码中,当空间大小扩大时,经常采用的代码就是类似Kimi给出的代码。SUN都这样用,我们参考参考更应该了。