繁体   English   中英

无法将通过蓝牙接收的字符串与普通字符串进行比较

[英]Can't compare string received through Bluetooth with normal String

我在Arduino和Android手机之间建立了连接。

这是我正在接收的字符串:始终是字符串555 ,我知道是因为我测试了它:

    final String data = new String(encodedBytes, "US-ASCII");
    String toCompare = data;

但这总是打印false

txtArduino.setText(String.valueOf(toCompare.equals("555")));

我认为格式是不同的或类似的东西,因为我确定我会收到555

53 53 53 13 ASCII为5 5 5␍

new String将其转换为Unicode / UTF-16,在Java中,原义为“ 555 \\ r”或“ 555 \\ u000D”。 因此,您应该对此进行比较。

final String data = new String(encodedBytes, "US-ASCII");
String toCompare = data;

txtArduino.setText(String.valueOf(toCompare.equals("555\r")));

根据您的蓝牙库,您可能必须考虑正在接收字节 ,并且每次读取都会为您提供所有可用字节。 然后由您决定将流分成消息。 这可能是␍的目的。

输入字符串的末尾包含换行符。 修剪一下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM