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