.equals在处理过程中永远不会评估为true

时间:2016-11-13 13:24:46

标签: string if-statement processing equals

我已经编程了一个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?

1 个答案:

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