2011-09-20 22 views
8

Java'da, bir bayt [] dizisini nasıl alabilirim ve diziden ilk 16 baytı nasıl kaldırırım? Diziyi yeni bir diziye kopyalayarak bunu yapmak zorunda olduğumu biliyorum. Herhangi bir örnek veya yardım takdir edilecektir.Bayt dizisinden ilk 16 bayt kaldırılıyor

+0

sadece 'byteArray [2]' ByteArray 'ila almak [byteArray.length-1]' –

+3

Öyle mi Başlığınız ile soru arasındaki tutarsızlığı fark ettiniz mi? 16 bit mi yoksa 16 bayt mı? –

cevap

33

zaten Java kütüphanesinde Bunun için bir yöntem var:

Arrays.copyOfRange(byte[] original, int from, int to) 
+0

http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html#copyOfRange%28byte[]%%%%;%20int%29 – Nayuki

2
byte[] a; 

... 

if(a.length > 1) { 
    byte[] newA = new byte[a.length-2]; 
    for(int i = 2; i < a.length; ++i) 
     newA[i-2]=a[i]; 
} 
0
void remove(byte[] b) 
{ 
    for(i=16;i<b.length;i++) 
    { 
     a[i-16]=b[i]; 
     Process... arrays 
    } 
} 
+0

Cevabınızı açıklamalısınız. Sadece eğitmek için var, sadece soruları cevaplamak değil – Machavity

+0

@Machavity 'i' değerini takip edersem daha iyi bir açıklama olmayacağını düşündüm. 'a', varolan diziden 'b' yeni bir dizi. ilk 16 öğeyi ortadan kaldırmak istediğinizde, yeni dizinin öğelerini bu konumdan (i = 16) yazmaya başlıyorsunuz ve [i-16] yeni dizinin ilk baytını oluşturuyor, bu yüzden eski dizinin son değerine kadar kopyalayın bayt dizisi. –

İlgili konular