2011-09-20 23 views
8

W Javie, jak wziąć tablicę bajtów [] i usunąć pierwsze 16 bajtów z tablicy? Wiem, że mógłbym to zrobić, kopiując tablicę do nowej tablicy. Wszelkie przykłady lub pomoc będą mile widziane.Usuwanie pierwszych 16 bajtów z tablicy bajtów

+0

prostu wziąć od 'tablicaBitowa [2]' na 'ByteArray [byteArray.length-1]' –

+3

Czy ty zauważysz niespójność między tytułem a pytaniem? Czy to 16 bitów czy 16 bajtów? –

Odpowiedz

33

Jest już metoda ta w bibliotece Java:

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

http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html#copyOfRange%28byte[],%20int,%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

Powinieneś wyjaśnić swoją odpowiedź. WIĘC istnieje po to, by kształcić, a nie tylko odpowiadać na pytania. – Machavity

+0

@Machavity Myślałem, że nie będzie lepszego wyjaśnienia, jeśli śledzisz wartość "i". "a" to nowa tablica z istniejącej tablicy "b". gdy chcesz wyeliminować pierwsze 16 elementów, zacznij pisać elementy nowej tablicy od tej pozycji (i = 16), a [i-16] jest pierwszym bajtem nowej tablicy, więc skopiuj do ostatniej wartości starego tablica bajtów. –

Powiązane problemy