Arduino编程中使用的第二种类型的字符串是string对象。
对象是同时包含数据和函数的结构。可以像创建变量一样创建String对象并赋值或字符串。字符串对象包含的函数(在面向对象编程(OOP)中称为“方法”)对字符串对象中包含的字符串数据进行操作。
下面的示例和解释将清楚地说明对象是什么以及如何使用String对象。
void setup() { String my_str = "This is my string."; Serial.begin(9600); // (1)打印字符串 Serial.println(my_str); // (2)将字符串改为大写 my_str.toUpperCase(); Serial.println(my_str); // (3)覆盖字符串 my_str = "My new string."; Serial.println(my_str); // (4)替换字符串中的一个单词 my_str.replace("string", "Arduino sketch"); Serial.println(my_str); // (5)得到字符串的长度 Serial.print("String length is: "); Serial.println(my_str.length()); } void loop() { }
This is my string. THIS IS MY STRING. My new string. My new Arduino sketch. String length is: 22
创建一个string对象,并在草图的顶部分配一个值(或多个字符串)。
String my_str = "This is my string." ;
这将创建一个名为my_str的字符串对象,并给它一个“This is my String .”的值。
这可以与创建一个变量并为其赋值(如整数)相比较
int my_var = 102;
The sketch works in the following way.
该字符串可以像字符数组字符串一样打印到串行监视器窗口。
创建的字符串对象my_str有许多可以对其进行操作的函数或方法。这些方法是通过使用对象名称后跟点操作符(.)和要使用的函数名称来调用的。
my_str.toUpperCase();
函数的作用是:对my_str对象中包含的字符串进行操作,my_str对象的类型为string,并将对象中包含的字符串数据(或文本)转换为大写字符。在Arduino字符串引用中可以找到String类包含的函数列表。从技术上讲,String是一个类,用于创建String对象。
赋值操作符用于将一个新字符串赋值给替换旧字符串的my_str对象
my_str = "My new string." ;
赋值运算符不能用于字符数组字符串,但只能用于字符串对象。
函数的作用是:用传递给它的第二个字符串替换传递给它的第一个字符串。replace()是构建在String类中的另一个函数,因此可以在String对象my_str上使用。
使用length()很容易获得字符串的长度。在示例示意图中,length()返回的结果直接传递给Serial.println(),而不使用中间变量。
字符串对象比字符串字符数组更容易使用。该对象具有可以对字符串执行许多操作的内置函数。
使用String对象的主要缺点是它会占用大量的内存,并且会很快耗尽Arduino的RAM内存,这可能会导致Arduino挂起、崩溃或出现意外的行为。如果Arduino上的草图很小,限制了对象的使用,那么应该没有问题。
字符数组字符串更难于使用,您可能需要编写自己的函数来操作这些类型的字符串。这样做的好处是可以控制所创建的字符串数组的大小,因此可以保持数组较小以节省内存。
在本章中,我们学习了字符串,它们在内存中的行为以及它们的操作。
当我们学习如何从串行监视器窗口获取用户输入并将输入保存到字符串中时,本课程的下一部分将讨论字符串的实际使用。