📜  Arduino-字符串对象

📅  最后修改于: 2020-11-05 03:30:09             🧑  作者: Mango


Arduino编程中使用的第二种类型的字符串是字符串对象。

什么是物体?

对象是既包含数据又包含功能的构造。可以像创建变量一样创建String对象,并为其分配值或字符串。 String对象包含对String对象中包含的字符串数据进行操作的函数(在面向对象编程(OOP)中称为“方法”)。

以下草图和说明将使您清楚什么是对象以及如何使用String对象。

void setup() { 
   String my_str = "This is my string.";
   Serial.begin(9600);

   // (1) print the string
   Serial.println(my_str);

   // (2) change the string to upper-case
   my_str.toUpperCase();
   Serial.println(my_str);

   // (3) overwrite the string
   my_str = "My new string.";
   Serial.println(my_str);

   // (4) replace a word in the string
   my_str.replace("string", "Arduino sketch");
   Serial.println(my_str);

   // (5) get the length of the string
   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 my_str = "This is my string." ;

这将创建一个名称为my_str的String对象,并为其赋予值“ This is my 字符串。”。

可以将其与创建变量并为其分配值(例如整数)进行比较-

int my_var = 102;

草图按以下方式工作。

打印字符串

该字符串可以像字符数组字符串一样打印到“串行监视器”窗口中。

将字符串转换为大写

创建的字符串对象my_str具有许多可以对其进行操作的函数或方法。通过使用对象名称,后跟点运算符(。),然后使用要使用的函数的名称来调用这些方法。

my_str.toUpperCase();

toUpperCase()函数包含在my_str对象,它是String类型和转换字符串数据(或文本),该对象包含大写字符的字符串操作。可以在Arduino String参考中找到String类包含的功能列表。从技术上讲,String被称为一个类,用于创建String对象。

覆盖一个字符串

赋值运算符用于将新字符串分配给替换旧字符串的my_str对象

my_str = "My new string." ;

赋值运算符不能用于字符数组字符串,而只能用于String对象。

替换字符串中的单词

replace()函数用于将传递给它的第一个字符串替换为传递给它的第二个字符串。 replace()是String类中内置的另一个函数,因此可以在String对象my_str上使用。

获取字符串的长度

通过使用length()可以很容易地获得字符串的长度。在示例草图中,由length()返回的结果不使用中间变量而直接传递给Serial.println()。

何时使用字符串对象

字符串对象比字符串字符数组更易于使用。该对象具有内置函数,可以对字符串执行许多操作。

使用String对象的主要缺点是它占用大量内存,并且会很快用完Arduino RAM内存,这可能会导致Arduino挂起,崩溃或异常运行。如果Arduino上的草图很小并且限制了对象的使用,那么应该没有问题。

字符数组字符串更难使用,您可能需要编写自己的函数才能对这些类型的字符串进行操作。优点是您可以控制所生成的字符串数组的大小,因此可以使数组较小以节省内存。

您需要确保不要用字符串数组超出数组界限的末尾写。 String对象没有此问题,只要有足够的内存可操作,它就会为您处理字符串边界。 String对象可以尝试写到内存不足时不存在的内存,但是永远不会覆盖正在操作的字符串的结尾。

使用字符串的地方

在本章中,我们研究了字符串,它们在内存中的行为及其操作。

字符串的实际应用,将在这个过程中,当我们研究如何从串口监视器窗口获取用户输入并保存输入字符串的下一部分覆盖。