处理 - IF 语句中的奇怪行为[重复]

问题描述 投票:0回答:1

我有这个代码。

if(infoDisplay.readChar() == SOH) {
  waitingForReturn = false;
  println("Got here 9");
  String inStr = infoDisplay.readStringUntil(EOT);
  inStr = inStr.substring(0,inStr.length()-1);
  println("Got here 10");
  print(inStr);
  println(" - Length: " + inStr.length());
  print(heartbeat);
  println(" - Length: " + heartbeat.length());
  if(inStr == heartbeat) {
    println("Got here 11");
    return true;
  } else {            
    println("Got here 12");//Retry
    return false;
  }
} else {
      return false;
}

我的控制台输出看起来像这样

Got here 9
Got here 10
HEARTBEAT - Length: 9
HEARTBEAT - Length: 9
Got here 12

这里出了什么问题?两个变量打印出来相同且长度相同?

java processing
1个回答
2
投票

对于 java 字符串,您必须使用

.equals()
来表示相等。您在这里所做的就是比较它们的内存地址,看看它们是否相同。

所以你的 if 语句应该是

if (inStr.equals(heartbeat)) {

© www.soinside.com 2019 - 2024. All rights reserved.