我已经编程了一个Engduino来测量房间内的温度,使用它的热敏电阻并将值输出到串口;当程序开始时,它输出" start temp"当程序结束时,它输出"结束温度",并在它之间每隔2秒输出一次温度值。我在Processing中使用.readString来读取这些值,因为它们正在被测量。
String str = myEngduino.readString();
if(str!=null){
println(str);
}
此代码工作正常,打印到控制台的值确实是"开始临时",然后是他们读取的温度,然后"结束温度"程序结束时所以我不明白为什么这段代码中的if语句永远不会评估为true:
String str = myEngduino.readString();
if(str!=null){
println(str);
if(str.equals("start temp")){
println("START");
}
}
str肯定设置为" start temp"因为它被打印到控制台,所以为什么我的if语句在此时评估为true?
答案 0 :(得分:0)
我建议仔细检查readString()
是否还会返回换行符(\n
)。
您可以尝试使用trim():
String str = myEngduino.readString();
if(str!=null){
str = str.trim();
println(str);
if(str.equals("start temp")){
println("START");
}
}
我能想到的另一个解决方法是检查str。contains()而不是equals()