salve a tutti
c'e` un piccolo problema che sto cercando di risolvere con scarso successo, magari voi potete aiutarmi: data una "stringa di bit", cioe` un oggetto di tipo String che come caratteri contiene solo 0 e 1, qual e` secondo voi il modo migliore per prendere i singoli "byte" da questa stringa e tradurli in un vero e proprio carattere secondo il charset specificato?
ho tentato ad esempio di usare il metodo Byte.parseByte, con base 2, ma se gli passo 8 bit da un errore, perche` a quanto pare e` un byte signed, non unsigned... questo e` quello che ho tentato finora:
ma non funzionacodice:public static String toString(String str, String charset) { if(!isBitString(str)) return str; //se NON e` una bistring la ritorno else { String ret = null; // output byte[] arr = new byte[str.length()/8 + 1]; byte array per il parsing della stringa di bit for(int i=0;i<str.length();i+=8) arr[i/8] = Byte.parseByte(str.substring(i,i+8), 2); // metodo parseByte che NON riesco a far funzionare come vorrey try { if(charset == null) ret = new String(arr, "US-ASCII"); // a partire dal byte array, creo la stringa di output else ret = new String(arr, charset); } catch(Exception e) { System.err.println(e.getMessage()); System.exit(0); } return ret; } }suggerimenti? qual e` una maniera semplice di modificare un byte bit per bit?
grazie in anticipo per l'aiuto


suggerimenti? qual e` una maniera semplice di modificare un byte bit per bit?
Rispondi quotando
