Arduino程序设计-把逗号分隔的文本拆分成组

发布于 2021-01-19 23:13

1、  描述


有一个字符串包含两段或者多段由逗号(或者其他任意分隔符)分割的数据。你想要分割字符串以便单独使用每个部分。

2、   程序示例


无需连接任何电子元件,直接将此代码上传到您的Arduino板子上,通过串口查看数据。

String text = "xiaohong,xiaoming,xiaohuang";//一个用逗号分隔的完整字符串

String message = text; //保存尚未分隔的原始文本

int commaposition;     //字符串中逗号的位置

 

void setup()

{

    Serial.begin(9600);

    Serial.println(message);//串口打印原始字符串

    do{

        commaposition = message.indexOf(',');//找到字符串中逗号出现的位置

        if(commaposition != -1)//如果能找到逗号

        {

            Serial.println(message.substring(0,commaposition));  //打印找到的逗号之前的文本

            message = message.substring(commaposition+1,message.length());  //message变成去掉已打印的文本的剩余文本

        }

        else            //如果没有找到逗号

        {

            if(message.length()>0) //message是否存在文本

            {

                Serial.println(message);//将改文本串口输出

            }

        }

    }

    

    while(commaposition >=0);//当逗号位置存在

}

void loop(){}

 

3、   实验现象


串口监视器:

xiaohong,xiaoming,xiaohuang

xiaohong

xiaoming

xiaohuang

 

4、   说明


该程序使用String函数从逗号之间提取文本。

commaposition = message.indexOf(',');

将变量commaposition设置到名为message的String中的第一个逗号的位置,(如果没有逗号,它会被设置为-1)。如果有一个逗号,substring函数用来打印字符串从开始到逗号位置的文本,但不包括逗号。在下面的这一行中,被打印的文本及其后面的逗号将会从message中除去:

message = message.substring(commaposition+1,message.length());

 

substring返回从commaposition+1开始(正好是第一个逗号后的位置)直到消息末尾的字符串。这将导致message仅含有第一个逗号之后的文本。这个操作一直重复,直到没有逗号被发现(commaposition等于-1)。

 

本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。

相关素材