2010-12-11 40 views
7

Cómo convertir una cadena a una secuencia de bits ceros y unos lo que hice tomo una cadena y la convierto en una matriz de caracteres, entonces utilicé el método llamado forDigit (char, int), pero no me da el carácter como una secuencia de 0 y 1 podría ayudar por favor. también, ¿cómo puedo hacer el reverso de bit a char? pleaes mí una muestraCómo convertir una cadena a una secuencia de bits en java

Respuesta

3

Probé éste muestran ..

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

maravillosa me gusta su respuesta es que trabaja conmigo – Bob2

+0

El problema es que no todos los caracteres tienen la misma longitud de bits puestos, por lo que no sería capaz de decodificar este binario secuencia, ya que no sabrá cuánto tiempo son los bits. –

+0

gracias bob ..! @Peter Lawrey cada personaje está codificado en una secuencia binaria de longitud 7. Así que supongo ... se puede manejar ... –

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

Su más fácil si se toma dos pasos. String admite la conversión de String a/from byte [] y BigInteger puede convertir byte [] en texto binario y 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); 

imprime

Text: Hello World! 
As binary: 10010000110010101101100011011000110111100100000010101110110111101110010011011000110010000100001 
As text: Hello World! 
Cuestiones relacionadas