Arduino教程12.Arduino 字符串对象

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

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

什么是对象?

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

下面的草图和解释将清楚说明对象是什么,以及如何使用字符串对象。

例子

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 string.”。

这可以与创建变量并为其分配一个值(如整数)相比较:

int my_var = 102;

以上草图以下列方式工作。

(1)打印字符串

字符串可以像字符数组字符串一样打印到串口监视器窗口。

(2)将字符串转换为大写

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

my_str.toUpperCase();

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

(3)覆盖字符串

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

my_str = "My new string." ;

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

(4)替换字符串中的单词

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

(5)获取字符串的长度

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

何时使用字符串对象

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

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

字符数组字符串更难使用,你可能需要编写自己的函数来操作这些类型的字符串。其优点是,你可以控制字符串数组的大小,因此你可以保持数组很小来节省内存。

你需要确保不要超出字符串数组边界的范围,而String对象没有这个问题,只要有足够的内存供它操作,就会照顾到你的字符串边界。在内存不足时,String对象可以尝试在不存在的内存中写入,但绝不会在超出其操作的字符串末尾的地方写入。

在哪里使用字符串

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

字符串的用法将在课程的下一部分进行介绍,届时我们将学习如何从串口监视器窗口获取用户输入并将输入保存为字符串。

发布者:suiyublg,转转请注明出处:https://huibian.net/1012-2/

(16)
suiyublg的头像suiyublg
上一篇 2017年3月27日 15:30
下一篇 2017年3月29日 17:14

相关推荐

  • Arduino项目02.Arduino 渐变LED

    这个例子演示了使用analogWrite()函数来渐变LED的功能。AnalogWrite使用脉冲宽度调制(PWM),以开和关之间的不同比率非常快速地打开和关闭数字引脚,以产生渐变效应。 必需的组件 你将需要以下组件: 程序 按照电路图连接面包板上的组件,如下图所示。 注意 − 要了解LED的极性,请仔细查看。两个腿中较短的,朝向灯泡的平坦边缘表示…

    2017年4月13日
    46300
  • Arduino教程22.Arduino If … else if … else语句

    if 语句后面可以跟随一个可选的 else if … else 语句,其对于测试各种条件非常有用。 当使用 if … else if … else 语句时,请记住: if … else if … else语句 if (expression_1) { …

    2017年3月24日
    44000
  • Arduino进阶06.Arduino 内部集成电路(I2C)

    内部集成电路(I2C)是用于微控制器和新一代专用集成电路之间的串行数据交换系统。

    2017年4月10日
    81211
  • Arduino教程01.Arduino 概述

    Arduino是一个基于易用硬件和软件的原型平台(开源)。它由可编程的电路板(称为微控制器)和称为Arduino IDE(集成开发环境)的现成软件组成,用于将计算机代码写入并上传到物理板。

    2017年3月17日
    47202
  • Arduino函数库05.Arduino 三角函数

    你需要使用三角几何来计算移动物体的距离或角速度。Arduino提供了传统的三角函数(sin,cos,tan,asin,acos,atan),可以通过编写它们的原型来概括。Math.h包含三角函数的原型。 三角函数的精确语法 例子

    2017年4月4日
    50600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
欢迎大家来到大雄学编程!