我有一个客户端服务器Java代码,客户端正在读取字符串“input”,然后它应该解密它,解密函数需要一个字节数组,所以我需要将字符串转换为字节数组,这是使用“getBytes()”函数完成的,但是这个函数似乎正在修改字符串!如何将字符串转换为字节数组而不更改其内容。
String input = inputline.substring(66, inputline.length());
System.out.println("Read message +"+input+"+");
byte[] bx = input.getBytes(Charset.forName("UTF-8"));
System.out.println("Read message +"+bx.toString()+"+");
System.out.println("Read message +"+bx+"+");
代码片段的输出如下:
阅读消息+[B@161cd475+
阅读消息+[B@4e25154f+
阅读消息+[B@4e25154f+
最佳答案
尝试编写一个 for 循环来打印结果。我相信 Java 正在为您的输出吐出一个随机内存值。
(int i = 0; s <= bx.length;i++)
{
System.out.println("Read message +" + bx[i].toString() + "+");
System.out.println("Read message +" + bx + "+");
}
不确定我的 for 循环是否正确,但它可能会给你一些可以使用的东西。我希望这会有所帮助。
关于Java 字符串到字节数组的错误转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26569409/