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

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

本文关键字:麻烦 是否 字符串 检查 包含 一点 字符 if indexOf 创建 一个      更新时间:2023-10-16

我希望它是如果字符串包含某个字符,它会做一件事。例如,如果Serial.readString();读取X100Y100那么我想检查它是否包含 X。到目前为止,我所拥有的是:

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

这行得通吗?

如果找到XindexOf()将返回其索引。如果在索引 0 处找到它,则if语句的计算结果将为 false。同样,如果未找到XindexOf()将返回-1,您的if语句将评估为 true。要检查X是否存在serialData,您需要检查indexOf()是否不返回-1

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

有关详细信息,请参阅indexOf()文档。