将字节串转换为ASCII

Son*_*hja 2 java sockets android byte

我正在连接到蓝牙设备,它可以回答我发送的一些参数,但作为响应,我从这样的套接字中读取:

String data = dIn.readLine();
Run Code Online (Sandbox Code Playgroud)

其中dIn是:

DataInputStream dIn = new DataInputStream(socket.getInputStream());
Run Code Online (Sandbox Code Playgroud)

问题是我收到了数据,但它是一个字符串读取的字节数组.如何将包含我的字节数组的字符串转换为具有正确十六进制值的String?

先感谢您.

Jon*_*eet 7

目前还不清楚您是否正在尝试实际解码您作为字节数组获得的文本字符串,或者您是否需要任意二进制数据的文本表示(十六进制).首先你要使用:

String text = new String(data, 0, data.length, "ASCII");
Run Code Online (Sandbox Code Playgroud)

对于第二个,您可以使用像Apache Commons Codec这样的东西:

String text = Hex.encodeHexString(data);
Run Code Online (Sandbox Code Playgroud)

  • @Sonhja:提出更具体的问题,得到更具体的答案:) (2认同)