byte[] a
的值为{119},这是“w”的ascii等价物,但是当我使用.toString()
将其转换为字符串时,它会给我一个奇怪的字符串。知道我做错了吗?
byte[] a = characteristicRX.getValue();
String rscvString = a.toString();
Log.d("byteToHex", "rscvString = " + rscvString);
while ( rscvString != "w" ){
答案 0 :(得分:2)
String对象将byte[]
参数作为重载构造函数。使用String rscvString = new String(a);
,您应该排序
您不能使用布尔运算符来测试字符串,即。 !=或==。
使用while ( !(rscvString.equalsIgnoreCase("w") )
equalsIgnoreCase()
方法将返回一个布尔值和!将迫使测试反对虚假。
答案 1 :(得分:0)
尝试以下其中一行将字节转换为字符并将其转换为字符串
String rscvString = String.valueOf((char) a);
String rscvString = String.valueOf((char) (a & 0xFF));
您可以在String构造函数中传递一个字节数组,以获取数组的String对象。