byte [] toString()给出一个奇怪的字符串而不是实际值

时间:2017-10-04 11:59:50

标签: java android string byte

byte[] a的值为{119},这是“w”的ascii等价物,但是当我使用.toString()将其转换为字符串时,它会给我一个奇怪的字符串。知道我做错了吗?

simple image description

byte[] a = characteristicRX.getValue();
        String rscvString = a.toString();
        Log.d("byteToHex", "rscvString = " + rscvString);
        while ( rscvString != "w" ){

2 个答案:

答案 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对象。