[英]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.