首页 > 解决方案 > 使用 String.split 中的值时出现问题

问题描述

对于我当前的项目,我需要通过 USB 与 arduino 通信,并且我使用 csv。我这是什么意思?让我试着解释一下。我想用 Arduino 来读取传感器。但由于我有不同的传感器,我想发送的不仅仅是消息中的值,还要发送值来自哪个传感器以及它是什么类型的传感器(按钮、电位器……)。我也有不同的类型应该触发消息的事物,例如发送传感器的值或移动电机。然后我用分号将这些数据分开。当消息到达 Java 时,Java 使用 String.split(";") 拆分字符串。我的问题是 Java 无法正确识别第一个数字。如果我不注释掉Java中当前注释掉的代码,则IF语句中的代码不再执行,

“1”

这很有趣,因为目前 args[0] 只能是 1(如 Arduino 代码中所示),显然不是。

希望您能够帮助我。

isi_ko

Java Code: https://pastebin.com/vx0LdpuE
Arduino Code: https://pastebin.com/bgFMiQyt

标签: javaarduinoserial-communication

解决方案


代替:

if (args[0] == "1"){

做:

if ("1".equals(args[0])) {

String是一个对象,因此==比较引用而不是值。


推荐阅读