在Arduino中获取子字符串的最后一次出现


就像indexOf()帮助识别字符串中子字符串的第一次出现一样,lastIndexOf()函数帮助识别最后一次出现。这是因为lastIndexOf()执行反向搜索,而indexOf()执行正向搜索。

语法

myString.lastIndexOf(substr)

其中substr是在myString中搜索的子字符串。它可以是字符或字符串。

就像indexOf()一样,此函数也接受可选的from参数,如果您希望反向搜索从特定索引开始。

语法

myString.lastIndexOf(substr, from)

与indexOf()一样,此函数要么返回字符串中子字符串的最后一个索引,要么在找不到匹配项时返回-1。

示例

下面的示例代码说明了所有这些要点:

void setup() {
   // put your setup code here, to run once:
   Serial.begin(9600);
   Serial.println();
   String s1 = "Mississippi";
   String substr1 = "is";
   String substr2 = "os";
   Serial.println(s1.lastIndexOf(substr1));
   Serial.println(s1.lastIndexOf(substr2));
   Serial.println(s1.lastIndexOf(substr1, 3));
}
void loop() {
   // put your main code here, to run repeatedly:
}

输出

串口监视器输出如下所示:

如您所见,在第一种情况下,返回子字符串的最后一个索引(索引从0开始)。在第二种情况下,由于未找到匹配项,因此返回-1。在第三种情况下,因为我们要求Arduino从索引3开始反向扫描,所以返回下一个匹配项的索引。

更新于:2021年5月29日

704 次浏览

启动您的职业生涯

完成课程获得认证

开始
广告