尝试创建一个 if 语句来检查字符串是否包含使用 indexOf 的字符。有点麻烦

Trying to make an if statement that checks if a string contains a character using indexOf. Having a little bit of trouble

我希望它位于如果字符串包含特定字符时它会做一件事的地方。例如,如果 Serial.readString(); 读取 X100Y100,那么我想检查它是否包含 X。我到目前为止是:

void serialEvent() {
    serialData = Serial.readString();
    if (serialData.indexOf('X')) {
        serX.write(parseDataX(serialData));
    } else {
    // Doesnt contain the character X
    }
}

这行得通吗?

如果找到 XindexOf() 将 return 其索引。如果在索引 0 处找到它,您的 if 语句将评估为 false。同样,如果未找到 XindexOf() 将 return -1,您的 if 语句将评估为真。要检查 X 是否存在于 serialData 中,您需要检查 indexOf() 是否不存在 return -1:

if (serialData.indexOf('X') != -1)

有关详细信息,请参阅 indexOf() documentation