我正在连接到蓝牙设备,该设备响应我发送的某些参数,但作为响应,我从这样的套接字中读取:
String data = dIn.readLine();
dIn 是:
DataInputStream dIn = new DataInputStream(socket.getInputStream());
问题是我收到了数据,但它是一个在字符串上读取的字节数组。如何将包含我的字节数组的字符串转换为具有正确十六进制值的字符串?
提前谢谢你。
最佳答案
目前还不清楚您是想实际解码作为字节数组的文本字符串,还是想要任意二进制数据的文本表示(十六进制)。首先你会使用:
String text = new String(data, 0, data.length, "ASCII");
对于第二个,你可以使用类似 Apache Commons Codec 的东西:
String text = Hex.encodeHexString(data);
关于java - 将字节字符串转换为 ASCII,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7793504/