尝试创建一个 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
}
}
这行得通吗?
如果找到 X
,indexOf()
将 return 其索引。如果在索引 0 处找到它,您的 if
语句将评估为 false。同样,如果未找到 X
,indexOf()
将 return -1
,您的 if
语句将评估为真。要检查 X
是否存在于 serialData
中,您需要检查 indexOf()
是否不存在 return -1
:
if (serialData.indexOf('X') != -1)
有关详细信息,请参阅 indexOf()
documentation。
我希望它位于如果字符串包含特定字符时它会做一件事的地方。例如,如果 Serial.readString();
读取 X100Y100,那么我想检查它是否包含 X。我到目前为止是:
void serialEvent() {
serialData = Serial.readString();
if (serialData.indexOf('X')) {
serX.write(parseDataX(serialData));
} else {
// Doesnt contain the character X
}
}
这行得通吗?
如果找到 X
,indexOf()
将 return 其索引。如果在索引 0 处找到它,您的 if
语句将评估为 false。同样,如果未找到 X
,indexOf()
将 return -1
,您的 if
语句将评估为真。要检查 X
是否存在于 serialData
中,您需要检查 indexOf()
是否不存在 return -1
:
if (serialData.indexOf('X') != -1)
有关详细信息,请参阅 indexOf()
documentation。