Может кто-нибудь объяснить, что не так с этим кодом. ПОЧЕМУ утверждение if всегда ложно, когда оно соответствует точным строкам. Я тоже пробовал его с ==. Все, каждый раз, когда я получаю No Match Found !!.Сравнение строк Не работает Arduino
String inData = "";
char inChar;
String property;
String a = "test";
void loop() {
Serial.println("String Comparison");
if(Serial.available() > 0){
while(Serial.available()>0) {
inChar = Serial.read();
inData.concat(inChar);
}
//Extracting Property
property = inData.substring(inData.lastIndexOf(":")+2); // Extracts the String "test"
Serial.println("Property:" +property);
if(property.equals(a)){ // It never matches though, it is TRUE all the time
Serial.println(" Matched !! ");
}
else
Serial.println(" Match Not Found !! ");
inData = "";
}
delay(5000);
}
Я имел точно такую проблему тоже, да и длина строки не совпадают. Я решил это, добавив: 'command = command.substring (0, command.length() - 1);' В вашем случае вы можете исправить это, сделав +1 вместо +2. – onok