Arduino 简明教程
Arduino - String Object
Arduino 编程中使用的第二种类型的字符串是字符串对象。
What is an Object?
对象是一种同时包含数据和函数的结构。可以创建字符串对象,就像创建变量并为其分配一个值或字符串一样。字符串对象包含函数(在面向对象编程 (OOP) 中称为“方法”),这些函数对字符串对象中包含的字符串数据进行操作。
以下草图和说明将明确说明什么是对象以及如何使用字符串对象。
Example
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() {
}
Result
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 的字符串对象,并为其赋予“This is my string.” 的值。
这可以与创建变量并为其分配值(例如整数)进行比较
int my_var = 102;
草图按以下方式工作。
Convert the String to Upper-case
创建的字符串对象 my_str 具有一些可以对其进行操作的函数或方法。通过使用对象名称后跟点运算符(.),然后使用要使用的函数的名称来调用这些方法。
my_str.toUpperCase();
toUpperCase() 函数对 my_str 对象中包含的字符串进行操作,该对象类型为 String,并将对象包含的字符串数据(或文本)转换为大写字符。可以在 Arduino String 参考中找到 String 类中包含的函数的列表。从技术上讲,String 被称为一个类,用于创建 String 对象。
Overwrite a String
赋值运算符用于为替换旧字符串的 my_str 对象分配新字符串。
my_str = "My new string." ;
赋值运算符不能用于字符数组字符串,但仅适用于 String 对象。
When to Use a String Object
字符串对象比字符串字符数组更容易使用。对象具有内置函数,可以对字符串执行许多操作。
使用字符串对象的主要缺点是它使用大量内存,并且可能会快速耗尽 Arduino 的 RAM 内存,这可能导致 Arduino 悬空、崩溃或行为异常。如果 Arduino 上的一个草图很小并限制对对象的使用的,那么应该没有问题。
字符数组字符串更难使用,您可能需要编写自己的函数来操作这些类型的字符串。优点是您可以控制所制作的字符串数组的大小,因此您可以将数组保持较小以节省内存。
使用字符串数组时,你需要注意不要超出数组范围的末尾。String 对象没有这个问题,它会处理字符串范围,只要有足够的内存供它操作即可。String 对象在内存不足时可能会尝试写入不存在的内存,但它永远不会覆盖它正在操作的字符串的末尾。