我在Arduino和Android手机之间有联系。
这是我收到的字符串:总是字符串555
,我知道因为我测试了它:
final String data = new String(encodedBytes, "US-ASCII");
String toCompare = data;
但这将始终打印false
:
txtArduino.setText(String.valueOf(toCompare.equals("555")));
我认为格式不同或类似,因为我肯定知道我收到了555
。
答案 0 :(得分:0)
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")));
根据您的蓝牙库,您可能必须考虑接收字节的流,并且每次读取都会为您提供所有可用字节。然后由您将流拆分为消息。这可能是␍的目的。
答案 1 :(得分:0)
您的输入字符串包含最后的换行符。修剪它。