Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串到字节[]和字节[]到字符串_Java_String_Binary_Byte - Fatal编程技术网

Java 字符串到字节[]和字节[]到字符串

Java 字符串到字节[]和字节[]到字符串,java,string,binary,byte,Java,String,Binary,Byte,我正在处理一些代码,这些代码将字符串转换为字节[],然后从字节[]转换为字符串(一个字符串,它是原始字符串的二进制表示形式),然后我假设要对该字符串执行某些操作。当我尝试将字符串转换为字节[],并将字节[]转换为原始字符串时,某些操作不起作用 byte[]binary=“Example”.getBytes(StandardCharsets.UTF_8); 字符串x=新字符串(); for(字节b:二进制) { x+=整数。toBinaryString(b); } 字节[]b=新字节[x.leng

我正在处理一些代码,这些代码将字符串转换为字节[],然后从字节[]转换为字符串(一个字符串,它是原始字符串的二进制表示形式),然后我假设要对该字符串执行某些操作。
当我尝试将字符串转换为字节[],并将字节[]转换为原始字符串时,某些操作不起作用

byte[]binary=“Example”.getBytes(StandardCharsets.UTF_8);
字符串x=新字符串();
for(字节b:二进制)
{
x+=整数。toBinaryString(b);
}
字节[]b=新字节[x.length()];
for(int i=0;i
正如您在代码中看到的,我正在使用一个名为“example”的示例字符串,我正在尝试执行上面所写的操作
当我打印
str
时,我没有得到“示例”字符串。

有人知道怎么做吗?我在堆栈溢出本身上搜索了一个解决方案,但找不到解决方案。

如果没有中间部分,应该可以

byte[] binary = "Example".getBytes(StandardCharsets.UTF_8);
String str = new String(binary, StandardCharsets.UTF_8);
System.out.println(str);

您是否尝试过使用array.toString(byte[])将字节转换为字符串?
x+=Integer.toBinaryString(b)将是
x+=“1000101”对于字符“E”(=ascii 69)@JörnBuitink是的,但我如何将该二进制字符串重新转换为原始字符串“Example”?这是关键点:我有一个二进制字符串(如您所说,字符“E”的示例“100101”),我必须使用该二进制字符串nope显示回“E”。我说我想对byte[]数组做些什么,所以我不能删除中间的部分。那么真正的问题是你想用它做什么?因为变异操作是导致字符串改变的原因。我正在实现类似密码的东西,所以我必须对字符串的二进制表示进行处理,然后再次获得字符串的二进制表示,这样我才能获得原始字符串。哦。现在我明白了。您正在转换字符串->字节[]->由1和0组成的字符串->字节[],其中每个元素都是1和0字符串->字符串的一部分。如果您想将第二个字节[]转换回字符串,则需要使用位移位将其转换为字节,而不仅仅是位。您可以发布一些代码示例吗?我将非常感激!