Arduino查询字符在字符串中的位置

使用语言:Arduino
开发板:Node Mcu ESP8266 CH340
编辑器:Visual Studio Code

问题描述:

在使用Arduino开发过程中,我们需要查询某个字符,在某个字符串当中所处的位置,以及判断某个字符是否在某个字符串当中;


解决方式:

Arduino中也提供了两个函数共我们使用,lastIndexOf()和indexOf();我们可以通过这两个函数进行查询。如果没有找到则会返回-1;如果找到了则会返回字符所在的位置;

函数说明:

indexOf()

是从左向右进行查

句法格式:

myString.indexOf(val)
myString.indexOf(val, x)

参数说明:

myString: 类型的变量String
val:要查找的值。允许的数据类型:charString.
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:要查找的值。允许的数据类型:charString.
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所在的字符串位置;

文章结尾:

如果本文的解决方案,对您有帮助的话,请不要吝啬你的赞,谢谢!

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值