2016-11-13 9 views
0

私は、サーミスタを使用して部屋の温度を測定し、その値をシリアルポートに出力するようにEngduinoをプログラミングしました。プログラムが起動すると「start temp」が出力され、プログラムが終了すると「end temp」が出力され、その間に2秒ごとに温度値が出力されます。処理中に.readStringを使用して、これらの値を測定中に読み込みます。処理中に.equalsがtrueになることはありません

String str = myEngduino.readString(); 
if(str!=null){ 
    println(str); 
} 

このコードは正常に動作し、コンソールに印刷されている値は、プログラムが終了すると、それらを読んでいるよう温度、そして「最後の一時」「TEMPを開始」確かです。

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

strのは、それがコンソールにプリントアウトされているので、間違いなく「一時の開始」に設定されているので、なぜだろうではない、私の場合:このコードでのif文が真と評価されたことがない、なぜだから私は理解していませんこの時点で真と評価されるステートメント?

答えて

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()

関連する問題