【发布时间】:2016-03-28 22:07:08
【问题描述】:
我正在处理一些将 String 转换为 byte[] 的代码,然后从 byte[] 转换为 String(一个 String,它是原始 String 的二进制表示),然后我打算做一些事情那个字符串。
当我尝试将字符串转换为 byte[] 并将 byte[] 转换为原始字符串时,有些东西不起作用。
byte[] binary = "Example".getBytes(StandardCharsets.UTF_8);
String x = new String();
for(byte b : binary)
{
x += Integer.toBinaryString(b);
}
byte[] b = new byte[x.length()];
for (int i = 0; i < b.length; i++)
{
b[i] = (byte) (x.charAt(i) - '0');
}
String str = new String(b, StandardCharsets.UTF_8);
System.out.println(str);
正如您在该代码中看到的那样,我正在使用一个名为“Example”的示例字符串,并且我正在尝试执行我上面写的操作。
当我打印 str 时,我没有得到那个“示例”字符串。
有谁知道这样做的方法?我在 Stack Overflow 上搜索了解决方案,但我找不到解决方案。
【问题讨论】:
-
你试过 Arrays.toString(byte[] ) 将字节转换为字符串吗?
-
x += Integer.toBinaryString(b);将是x += "1000101";字符'E' (=ascii 69) -
@JörnBuitink 是的,但是我如何将该二进制字符串重新转换为原始字符串“示例”?
-
这是关键点:我有一个二进制字符串(如您所说,字符“E”的示例“100101”),我必须使用该二进制字符串显示回“E”