将字节数组(收到的 mqtt 消息)与零进行比较以发送通知

Compare byte array (received mqtt message) to zero to send notification

我正在构建 android 应用程序,该应用程序从 esp8266 接收一条 mqtt 消息,其中包含我学校项目的水对水传感器的百分比。 所以,当百分比不等于零时,我需要发送应用程序通知,但有一个问题。接收到的消息是一个字节数组,但由于某种原因它不仅仅是数字,它具有特定的 U+FFFD 替换字符,因此我无法将此字节数组与另一个数组(如 [0])进行比较。我正在尝试将收到的消息转换为字符串,删除所有奇怪的符号并将其与“0”进行比较。但出于某种原因,我又不能。例如,字符串“0����”清除了所有的�字符,但java代码仍然认为它不等于“0”。

我的代码:

if (topic.equals(topicstr2)){
                    byte[] res = message.getPayload();
                    result_notif = new String(res).replaceAll("�", "");
                    if (result_notif != "0"){
                        sendNotif();
                    }
                }

result_notif是一个字符串,在代码的开头声明。

P.S。抱歉我的英语不好,我希望我已经把我的问题说清楚了。

使用 !result_notif.equals("0") 而不是 "result_info != "0"" 并使用 .trim() 方法解决了我的问题。

代码:

if (topic.equals(topicstr2)){
    byte[] res = message.getPayload();
    result_notif = new String(res).replaceAll("�", "").trim();
    intent.putExtra(MainActivity.PARAM_RESULT, result_notif);
    sendBroadcast(intent);
    if (!result_notif.equals("0")){
        sendNotif();
    }
}