2016-11-13 19 views
0

我编写了一个Engduino,用它的热敏电阻测量房间内的温度,并将值输出到串口;当程序开始时,它输出“启动温度”,程序结束时输出“结束温度”,并在两者之间每2秒输出一次温度值。我在Processing中使用.readString来读取这些值,因为它们正在被测量。.equals在处理中从未评估为真

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肯定是设置为“开始温度”,因为它被打印到控制台上,所以为什么我的若声明在这一点上评估为真?

回答

0

我建议仔细检查一下,如果readString()也返回新的行字符(\n)。

你可以尝试使用trim():如果str

String str = myEngduino.readString(); 
if(str!=null){ 
    str = str.trim(); 
    println(str); 
    if(str.equals("start temp")){ 
     println("START"); 
    } 
} 

我能想到的另外一个办法是检查。 contains()而不是equals()