Arduino学习笔记之分离字符串
1、如下图所示,首先准备要使用到的硬件,这个例子程序中,我们使用到的硬件很简单,只有一个Arduino UNO控制器和一个方口的下载线,不需要其他的硬件设备,主要是着重于代码部分。

2、打开 Arduino IDE 软件来编辑程序,程序如下所示:
String message= "My,You,Her,He";
int commaPosition;
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.println(message);
do
{
commaPosition = message.indexOf(',');
if(commaPosition != -1)
{
Serial.println( message.substring(0,commaPosition));
message = message.substring(commaPosition+1, message.length());
}
else
{
if(message.length() > 0)
Serial.println(message);
}
}
while(commaPosition >=0);
delay(5000);
}
你可以选择直接复制粘贴我的代码到IDE编辑区,就像下图中这儿样子,也可以为了练习书写代码,自己敲进去。这里提醒一下大家,在输入代码的时候,最好将输入法直接切换到英文输入法,如果使用中文输入法,会比较容易造成标点或者符号的错误,而且这种错误还不容易被检查出来。

3、完成了代码的输入后,我们就可以进行程序的编译,我认为编译就是让Arduino IDE 来帮你检查程序是否有输入错误,现在点击左上角的对号,如果程序之前没有保存,会像我的一样弹出保存对话框,输入你的程序名称,选择保存的位置即可,注意程序名称中不要含有中文。编译成功后,在编译器的下方会显示出“编译完成”


4、现在我们就要进行重要的一步 -- 程序上传,但是在上传之前,必须要做的就是设置控制器的型号,端口,注意:这是很重要的,因为不进行此项设置,或者设置错误,会造成程序上传的失败


5、完成了以上的操作之后,我们就可以进行程序的上传,点击编辑器的上传,没有问题的情况下,上传后,在 Arduino IDE 的下方会显示“上传成功”,如图所示。我们可以发现,在上传过程中,编译器同样会对程序先编译,再上传,但是为了程序的正确性,我还是比较习惯在上传前,先进行一次编译。

6、如果你所有步骤的结果都同我一样,就来看一下输出的结果吧,打开Arduino IDE 的串口监视器,如图所示,为程序的输出结果,我们就成功的将字符串以逗号为届分开了。

7、这个程序就是从字符串中取出单个的字串,程序中的设置一个变量 commaPosition 来存储第一个逗号的位置,如果系统没有找到第一个逗号,则会返回 -1。
如果逗号存在,函数就会打印从开始位置到这个逗号位置的字符串内容。
message = message.substring(commaPosition+1, message.length());
这句话,substring会返回一个子字符串,是从commaPosition+1开始,到message的最后位置,这样下次截取就是从这个新的字符串中截取,直到没有逗号为止,也就是commaPosition为 -1 的时候。