如何在java中将字符串转换为比特流

如何在java中将字符串转换为比特流,java,string,Java,String,如何将字符串转换为零和一的比特流 我所做的是,获取一个字符串,然后将其转换为一个字符数组,然后使用该方法 名为forDigit(char,int),但它没有将字符作为0和1的流提供给我 你能帮忙吗。 还有,我如何将位反转为字符。请给我看一个样品,我试过这个 public String toBinaryString(String s) { char[] cArray=s.toCharArray(); StringBuilder sb=new StringBuilder();

如何将字符串转换为零和一的比特流 我所做的是,获取一个字符串,然后将其转换为一个字符数组,然后使用该方法 名为forDigit(char,int),但它没有将字符作为0和1的流提供给我 你能帮忙吗。 还有,我如何将位反转为字符。请给我看一个样品,我试过这个

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

如果你采取两个步骤,这是最简单的。字符串支持从字符串到字节[]的转换,BigInteger可以将字节[]转换为二进制文本并返回

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!

问题是并非所有字符的位集长度都相同,因此您无法解码此二进制序列,因为您不知道这些位的长度。谢谢bob@Peter Lawrey将每个字符编码为长度为7的二进制字符串。所以我想。。它可以处理..System.out.println(Integer.toBinaryString(“”));印刷品100000@Peter如果@bob2在执行过程中遇到任何困难,让他提出明确的要求,非常感谢,我正在努力解决这个问题
Text: Hello World!
As binary: 10010000110010101101100011011000110111100100000010101110110111101110010011011000110010000100001
As text: Hello World!