2010-12-11 9 views
7

Come convertire una stringa in un flusso di bit zero e uno quello che ho fatto ho preso una stringa quindi convertirla in un array di char, quindi ho usato il metodo chiamato forDigit (char, int), ma non mi dà il personaggio come un flusso di 0 e 1 potresti aiutarmi per favore. anche come potrei fare il contrario da bit a un carattere. pleaes me un campioneCome convertire una stringa in un flusso di bit in java

risposta

3

ho provato questo uno dimostrano ..

public String toBinaryString(String s) { 

    char[] cArray=s.toCharArray(); 

    StringBuilder sb=new StringBuilder(); 

    for(char c:cArray) 
    { 
     String cBinaryString=Integer.toBinaryString((int)c); 
     sb.append(cBinaryString); 
    } 

    return sb.toString(); 
} 
+0

meraviglioso mi piace si risponde che lavora con me – Bob2

+0

Il problema è che non tutti i caratteri sono della stessa lunghezza di bit impostato, in modo da non essere in grado di decodificare questo binario sequenza in quanto non saprai quanto sono lunghi i bit. –

+0

grazie bob ..! @Peter Lawrey ogni carattere è codificato in una stringa binaria di lunghezza 7. Quindi immagino .. possa essere gestito .. –

0
String strToConvert = "abc"; 
byte [] bytes = strToConvert.getBytes(); 
StringBuilder bits = new StringBuilder(bytes.length * 8); 
System.err.println(strToConvert + " contains " + bytes.length +" number of bytes"); 
for(byte b:bytes) { 
    bits.append(Integer.toString(b, 2)); 
} 

System.err.println(bits); 
char [] chars = new char[bits.length()]; 
bits.getChars(0, bits.length(), chars, chars.length); 
10

La sua più semplice se si prendono due passi. String supporta la conversione da String a/da byte [] e BigInteger può convertire byte [] in testo binario e viceversa.

String text = "Hello World!"; 
System.out.println("Text: "+text); 

String binary = new BigInteger(text.getBytes()).toString(2); 
System.out.println("As binary: "+binary); 

String text2 = new String(new BigInteger(binary, 2).toByteArray()); 
System.out.println("As text: "+text2); 

Stampe

Text: Hello World! 
As binary: 10010000110010101101100011011000110111100100000010101110110111101110010011011000110010000100001 
As text: Hello World! 
Problemi correlati