使用语言: | Arduino |
开发板: | Node Mcu ESP8266 CH340 |
编辑器: | Visual Studio Code |
问题描述:
在使用Arduino开发过程中,我们需要查询某个字符,在某个字符串当中所处的位置,以及判断某个字符是否在某个字符串当中;
解决方式:
Arduino中也提供了两个函数共我们使用,lastIndexOf()和indexOf();我们可以通过这两个函数进行查询。如果没有找到则会返回-1;如果找到了则会返回字符所在的位置;
函数说明:
indexOf()
是从左向右进行查
句法格式:
myString.indexOf(val)
myString.indexOf(val, x)
参数说明:
myString
: 类型的变量String
。val
:要查找的值。允许的数据类型:char
, String
.x
: 开始搜索的索引。
例1:
String myname="zhangsan";
Serial.println(myname.indexOf("n"));
例2:
String myname="zhangsan";
Serial.println(myname.indexOf("n",2));
lastIndexOf()
是从右向左进行查
语法格式:
myString.lastIndexOf(val)
myString.lastIndexOf(val, x)
参数说明:
myString
: 类型的变量String
。val
:要查找的值。允许的数据类型:char
, String
.x
: 开始搜索的索引。
例1:
String myname="zhangsan";
Serial.println(myname.lastIndexOf("n"));
例2:
String myname="zhangsan";
Serial.println(myname.lastIndexOf("n",5));
编写代码:
下面这段代码是为了演示lastIndexOf()执行效果;
void setup (){
Serial.begin(9600);
String myname="zhangsan";
//lastIndexOf方法是倒序查找.从字符串的末尾开始搜索,从0计数;
Serial.println(myname.lastIndexOf("p"));
Serial.println(myname.lastIndexOf("s"));
Serial.println(myname.lastIndexOf("g",6));
}
void loop (){
}
实现效果:
-1
5
4
串口监视器当中返回了-1。也就是我们查询的字母P是不存在的;
串口监视器当中返回了5,查找S在字符串当中所处的位置。
串口监视器当中返回了4,是指定从第6位置向左查询,并且返回g所在的字符串位置;
文章结尾:
如果本文的解决方案,对您有帮助的话,请不要吝啬你的赞,谢谢!