Как преобразовать строку в поток битов в Java - PullRequest
7 голосов
/ 11 декабря 2010

Как преобразовать строку в поток битов с нулями и что я сделал, я взял строку, затем преобразовал ее в массив char, затем я использовал метод forDigit (char, int), но он не дает мнесимвол как поток 0 и 1 не могли бы вы помочь, пожалуйста.также, как я мог сделать обратное от бит до символа.пожалуйста, покажите мне образец

Ответы [ 3 ]

12 голосов
/ 11 декабря 2010

Проще всего, если вы сделаете два шага.String поддерживает преобразование из String в / из byte [], а BigInteger может преобразовывать byte [] в двоичный текст и обратно.

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);

Печать

Text: Hello World!
As binary: 10010000110010101101100011011000110111100100000010101110110111101110010011011000110010000100001
As text: Hello World!
3 голосов
/ 11 декабря 2010

Я попробовал это ..

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 голосов
/ 11 декабря 2010
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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...