Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    327

    [JAVA] metodo Split Java

    Salve,
    esiste un metodo in java che mi faccio lo split di un byte array??

    ad esempio ho una variabile byte array come segue

    byte MyVar[] = {16,16,16,16,16, 99, 16,16,16,16,16};
    byte MyVar2 = new byte[]

    vorrei poter fare uno split su MyVar ogni volta che trova il byte 99, e a sua volta mi crea un nuovo array tipo

    MyVar2[0] ={16,16,16,16,16};
    MyVar2[1] ={16,16,16,16,16};

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    che io sappia no, è una funzione che devi fare tu

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Io ne ho fatta una generica:

    codice:
    @SuppressWarnings({"unchecked"})
    public static<E> java.util.List<E[]> split(E[] array, E sep) {
       ArrayList<E[]> ret = new ArrayList<E[]>();
       int numElements = 0;
       int start = 0;
       for(int pos=0; pos<array.length; pos++) {
          if ( array[pos].equals(sep) ) {
             E[] tmpArray = (E[]) java.lang.reflect.Array.newInstance(array.getClass().getComponentType(), numElements);
             System.arraycopy(array, start, tmpArray, 0, numElements);
             ret.add( tmpArray );
             start = pos+1;
             numElements = 0;
          } else {
             numElements++;
          }
       }
       if ( numElements > 0 ) {
          E[] tmpArray = (E[]) java.lang.reflect.Array.newInstance(array.getClass().getComponentType(), numElements);
          System.arraycopy(array, start, tmpArray, 0, numElements);
          ret.add( tmpArray );
       }
       return ret;
    }
    Chiaramente funziona solo con array di oggetti, non con array di tipi primitivi.
    La funzione restituisce un List di array... così si va meglio ad usarli in un contesto di Collection Framework.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    327
    grazie mille!! la provo subito

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.