问题描述
我正在开发一个 Java 项目。 我使用密码进行编码和解码。 Cipher 返回一个字节数组。 由于某些原因,我必须在字符串中发送这个字节数组 您对如何取回相同的字节数组有任何想法吗?
例如,如果我有字符串:
"[B@5024d44"
并且我想转换为 byte[]
但我希望 byte[]
等于 [B@5024d44
。可能吗?
感谢您的回答。
解决方法
str(x1_dtype.__class__) == np.int64
告诉您您有一个字节数组,并且告诉您没有任何内容关于其中的内容。您不能将其转换回任何有意义的内容。
要将字节数组可逆地转换为 [B@5024d44
,请使用 Base64
。
如果你有一个字符串[B@5024d44
,你可以把它转换成一个byte[]
数组,然后再把这个数组转换回一个字符串。这两个字符串是相等的,但数组不等于字符串,数组的内容也不等于字符串:
String str = "[B@5024d44";
byte[] arr = str.getBytes(StandardCharsets.UTF_8);
String str1 = new String(arr,StandardCharsets.UTF_8);
// strings are equal
System.out.println(str.equals(str1)); // true
// string representation of the array
System.out.println(arr); // [B@5451c3a8
// contents of the array
System.out.println(Arrays.toString(arr));
// [91,66,64,53,48,50,52,100,52]