在Arduino中查詢子字串是否存在
為了檢查Arduino中字串中是否存在特定子字串,可以使用**indexOf()**函式。這將返回在另一個字串中搜索到的字元或字串的第一次出現的索引。如果字元或字串在給定字串中不存在,則函式返回-1。
下面的程式碼給出了示例實現:
示例
void setup() { Serial.begin(9600); Serial.println(); String s1 = "Hello World"; Serial.println(s1.indexOf('e')); Serial.println(s1.indexOf("Wor")); Serial.println(s1.indexOf('z')); Serial.println(s1.indexOf("Wer")); } void loop() { // put your main code here, to run repeatedly: }
序列埠監視器的輸出如下:
輸出
正如你所看到的,對於前兩種情況,索引被正確返回(計數從0開始,因此'H'的索引為0,'e'的索引為1,依此類推)。"Wor"從索引6開始。對於後兩種情況,在s1中找不到搜尋到的字元/字串,因此返回-1。
如果你希望從偏移量開始搜尋,你可以向函式提供第二個引數,指定搜尋應該從哪個索引開始。
參見下面的程式碼:
示例
void setup() { Serial.begin(9600); Serial.println(); String s1 = "Hello World"; Serial.println(s1.indexOf('o')); Serial.println(s1.indexOf('o',5)); } void loop() { // put your main code here, to run repeatedly: }
序列埠監視器的輸出是:
輸出
正如你所看到的,第一步,返回了"Hello"中'o'的位置(索引4)。之後,當我們指定搜尋應該從索引5開始時,返回了"World"中'o'的位置("Hello World"的索引7)。
廣告