我有这个代码。
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 字符串,您必须使用
.equals()
来表示相等。您在这里所做的就是比较它们的内存地址,看看它们是否相同。
所以你的 if 语句应该是
if (inStr.equals(heartbeat)) {