我正在尝试将字节转换为字符串。字节从蓝牙数据包中恢复并分成数组。数据很好,但它显示了接收数据的整数值,但我需要显示一个问题。 IE值显示65但我需要" A" textview的字符。
encodeBytes中的前10个字节发送到蓝牙{ABCDEFGHI},logcat显示6566676869707172730
byte[] encodedBytes = new byte[160];
System.arraycopy(readBuf, 0, encodedBytes, 0, encodedBytes.length);
Log.d("TAG", "Tiles data ");
strArrayTitle[0]=""; // clear
for (int i = 0; i < 10; i++) { // get first 10 chars
Byte piece = (encodedBytes[i]);
strArrayTitle[0] = strArrayTitle[0] +(piece);
}
Log.d("TAG", "String Data " + strArrayTitle[0]);
}
我根据答案做了一些修改并取得了一些进展。我将新字节更改为10并转换为字符串。我可以解析数据,以便一次转换所有160个字节吗?
byte[] encodedBytes = new byte[10];
System.arraycopy(readBuf, 0, encodedBytes, 0, encodedBytes.length);
String title = new String(encodedBytes);
Log.d("TAG", "Tiles data " + title);
答案 0 :(得分:1)
尝试制作像这样的字符串
String title = new String(strArrayTitle);
其中strArrayTitle是一个byte [];
答案 1 :(得分:0)
这是我解决问题的方法。我将readbuf分成几部分,然后转换为字符串。
String[] Titled = new String[16];
byte[] encodedBytes = new byte[10];
for (int f=0;f < 5;f++) {
System.arraycopy(readBuf, (f * 10), encodedBytes, 0, 10);
Titled[f] = new String(encodedBytes);
Log.d("TAG", "F1 " + f);
}
Log.d("TAG", "Tiles data 1 " + Titled[0]);
Log.d("TAG", "Tiles data 2 " + Titled[1]);
Log.d("TAG", "Tiles data 3 " + Titled[3]);
Log.d("TAG", "Tiles data 4 " + Titled[4]);
}