我有一个客户端服务器Java代码,客户端正在读取字符串"输入"然后它应该解密它,解密函数需要一个字节数组,所以我需要将字符串转换为字节数组,这是使用" 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 +
答案 0 :(得分:1)
尝试编写for循环以打印出结果。我相信Java会为你的输出吐出一个随机的内存值。
(int i = 0; s <= bx.length;i++)
{
System.out.println("Read message +" + bx[i].toString() + "+");
System.out.println("Read message +" + bx + "+");
}
不确定我的for循环是否正确,但它可能会给你一些工作。我希望这会有所帮助。
答案 1 :(得分:0)
这对你有用。我需要从字节数组中创建一个String对象...
String inputline = "[B@161cd475";
String input = inputline.substring(0, inputline.length());
System.out.println("Read message +"+input+"+");
byte[] bx = input.getBytes();
// Convert to String object
String tmp = new String(bx);
// Print statements.
System.out.println("Read message +" + tmp + "+");