2016-11-13 55 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()