- Arduino - 教程
- Arduino - 概述
- Arduino - Board Description
- Arduino - 安装
- Arduino - 程序结构
- Arduino - 数据类型
- Arduino - Variables & 常量
- Arduino - 运算符
- Arduino - 控制声明( Control Statements)
- Arduino - 循环
- Arduino - 功能( Functions)
- Arduino - 字符串( Strings)
- Arduino - String对象( String Object)
- Arduino - Time
- Arduino - 阵列( Arrays)
- Arduino - I/O Functions
- Arduino - Advanced I/O Function
- Arduino - 字符函数( Character Functions)
- Arduino - 数学图书馆( Math Library)
- Arduino - 三角函数( Trigonometric Functions)
- Arduino - Due & Zero
- Arduino - 脉冲宽度调制( Pulse Width Modulation)
- Arduino - 随机数( Random Numbers)
- Arduino - 中断( Interrupts)
- Arduino - 沟通( Communication)
- Arduino - 内部集成电路( Inter Integrated Circuit)
- Arduino - 串行外设接口( Serial Peripheral Interface)
- Arduino - 闪烁LED( Blinking LED)
- Arduino - 褪色LED( Fading LED)
- Arduino - 读取模拟电压( Reading Analog Voltage)
- Arduino - LED条形图( LED Bar Graph)
- Arduino - 键盘注销( Keyboard Logout)
- Arduino - 键盘消息( Keyboard Message)
- Arduino - 鼠标按钮控制( Mouse Button Control)
- Arduino - 键盘串口( Keyboard Serial)
- Arduino - 湿度传感器( Humidity Sensor)
- Arduino - 温度传感器( Temperature Sensor)
- Arduino - Water Detector / Sensor
- Arduino - PIR传感器( PIR Sensor)
- Arduino - 超声波传感器( Ultrasonic Sensor)
- Arduino - 连接开关( Connecting Switch)
- Arduino - 直流电机( DC Motor)
- Arduino - 伺服电机( Servo Motor)
- Arduino - 步进电机( Stepper Motor)
- Arduino - 音调库( Tone Library)
- Arduino - 无线通信( Wireless Communication)
- Arduino - 网络通信( Network Communication)
- Arduino - 有用的资源
- Arduino - 讨论
- Show Example 1
- Show Example 2
- Show Example 3
- Show Example 4
- Show Example 5
- If statement
- If …else statement
- If…else if …else statement
- switch case statement
- Conditional Operator ? :
- while循环
- do…while循环
- for循环
- Nested循环
- Infinite循环
- delay () function
- delayMicroseconds () function
- millis () function
- micros () function
- 将数组传递给函数(Passing Arrays to Functions)
- 多维数组(Multi-Dimensional Arrays)
Arduino - String对象( String Object)
Arduino编程中使用的第二种字符串是String Object。
什么是对象?
对象是包含数据和函数的构造。 String对象可以像变量一样创建并分配值或字符串。 String对象包含函数(在面向对象编程(OOP)中称为“方法”),它们对String对象中包含的字符串数据进行操作。
下面的草图和说明将清楚说明对象是什么以及如何使用String对象。
例子 (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的String对象,并为其赋予值“This is my string。”。
这可以与创建变量并为其赋值(如整数)进行比较 -
int my_var = 102;
草图以下列方式工作。
打印字符串
该字符串可以像字符串数组一样打印到Serial Monitor窗口。
将字符串转换为大写字母
创建的字符串对象my_str具有许多可在其上操作的函数或方法。 通过使用对象名称后跟点运算符(。)然后使用要使用的函数的名称来调用这些方法。
my_str.toUpperCase();
toUpperCase()函数对my_str对象中包含的字符串进行操作,该字符串的类型为String,并将对象包含的字符串数据(或文本)转换为大写字符。 可以在Arduino String引用中找到String类包含的函数列表。 从技术上讲,String称为类,用于创建String对象。
覆盖一个字符串
赋值运算符用于将新字符串分配给my_str对象,以替换旧字符串
my_str = "My new string." ;
赋值运算符不能用于字符数组字符串,但仅适用于String对象。
替换字符串中的Word
replace()函数用于替换传递给它的第二个字符串传递给它的第一个字符串。 replace()是另一个内置在String类中的函数,因此可以在String对象my_str上使用。
获取字符串的长度
通过使用length()可以轻松获得字符串的长度。 在示例草图中,length()返回的结果直接传递给Serial.println(),而不使用中间变量。
何时使用字符串对象
String对象比字符串字符数组更容易使用。 该对象具有内置函数,可以对字符串执行许多操作。
使用String对象的主要缺点是它使用大量内存并且可以快速耗尽Arduinos RAM内存,这可能导致Arduino挂起,崩溃或意外行为。 如果Arduino上的草图很小并且限制了对象的使用,那么应该没有问题。
字符数组字符串更难以使用,您可能需要编写自己的函数来操作这些类型的字符串。 优点是您可以控制所做的字符串数组的大小,因此可以保持较小的数组以节省内存。
您需要确保不使用字符串数组写入数组边界的末尾。 String对象没有这个问题,只要有足够的内存供它操作,它将为你处理字符串边界。 String对象可以尝试写入内存不足时不存在的内存,但永远不会写入它正在操作的字符串的末尾。
使用字符串的地方
在本章中,我们研究了字符串,它们在内存中的行为以及它们的操作。
当我们研究如何从串行监视器窗口获取用户输入并将输入保存在字符串中时,本课程的下一部分将介绍字符串的实际用法。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论