📜  Arduino字符串对象

📅  最后修改于: 2020-12-27 09:42:12             🧑  作者: Mango

Arduino字符串对象

Arduino中的对象是什么?

对象就像变量,它指向保存一些数据的存储位置。与对象关联的函数称为成员函数。结果,我们可以使对象执行某些操作。

例如,

begin(), print()println()是使用串行对象声明的函数。 Serial(print()等)之后的时间段指定我们正在访问Serial对象中的某些成员。成员可以是函数或变量。

在print()和println()函数之后的括号确定了串行调用的函数。这些函数不能在代码的全局范围内单独声明。因此,它们使用串行对象声明为Serial。 print()和Serial.println()。

字符串对象

String对象使我们可以在字符数组上存储和执行操作。 String对象比常规String占用更多的内存。

字符串对象始终以大写字母“ S”显示。它产生String类的实例。

可以从以下列出的不同数据类型构造它:

  • 使用特定基数的常量整数
  • 使用特定基数的长整数
  • String对象的实例
  • 用单引号引起来的常量字符
  • 字符的字符串常量包围的双引号内。
  • 浮动和双重

字符串的指定数字的默认基数为10。例如,

String myString = String(15);

它创建一个字符串,该字符串由数字15的ASCII表示形式组成。

要指定基数不是10的数字,可以将String创建为:

String myString = String(15, HEX);

它会给我们字符串“ F”。它表示十进制数15的十六进制转换。

我们还可以在BIN中表示一个字符串。例如,

String myString = String(15, BIN);

它会给我们字符串“ 1111”。它表示十进制数15的十六进制转换。

语法为:

String(value)
String(value, base)
String(value, PlacesofaDecimal)

哪里,

value :表示格式化或表示字符串所需的值。

数据类型为byte,unsigned int,char,float,double,unsigned long,long,int和字符串。

base :表示基数,格式化整数值需要此基数。例如,HEX,BIN等。

该库是可选的包括在内。

PlacesofaDecimal :它指定所需的小数位,仅当值是double或float时才需要。

带字符串对象的函数

我们可以对String使用各种函数。

  • charAT()

它用于访问特定字符。

语法为:

thisString.charAT(n)

哪里,

thisString是声明的变量

n也是一个变量

允许的数据类型为unsigned int

上面的语法将返回指定字符串的第n个字符。

  • 相比于()

它用于比较两个字符串。指定的字符串所使用的字符的ASCII值进行比较。

语法为:

thisString.compareTo(myString)

哪里,

thisStringmyString是声明的变量

如果thisString在myString之前,则上述语法将返回负数。

如果thisString在myString之后,它将返回一个正数。

  • 以。。结束()

它测试一个字符串是否以其他字符串的字符结尾

语法为:

thisString.endsWith(myString)

哪里,

thisStringmyString是声明的变量

如果thisString以myString字符结尾,则将返回true 。否则,它将返回false

  • 以。。开始()

它测试一个字符串是否以其他字符串的字符开头

语法为:

thisString.startsWith(myString)

哪里,

thisStringmyString是声明的变量

如果thisString以myString的字符开头,它将返回true 。否则,它将返回false

  • toLowerCase()

它获取指定String的小写版本。

语法为:

thisString.toLowerCase()

哪里,

thisString是声明的变量

  • toUpperCase()

它获取指定字符串的大写版本。

语法为:

thisString.toUpperCase()

哪里,

thisString是声明的变量

  • 等于()

它比较两个字符串的相等性。比较非常敏感,其中字符串“ Arduino”不等于字符串“ ARDUINO”。

语法为:

thisString.equals(myString)

哪里,

thisStringmyString是变量

如果thisString等于myString,它将返回true。否则,它将返回false

  • getBytes()

它将字符串的字符复制到提供的缓冲区中。

语法为:

thisString.getBytes(buffer, length)

哪里,

thisString是声明的变量

buffer :将字符复制到缓冲区中。所需的数据类型是byte

length :表示缓冲区的大小。所需的数据类型为unsigned int

  • lastIndexOf()

它在另一个字符串中找到一个字符串或字符。

语法为:

thisString.lastIndexOf(value)
thisString.lastIndexOf(value, from)

哪里,

thisString是声明的变量

值:它包括要搜索的特定值。所需的数据类型为Stringchar

from :定义为从其向后工作的索引

  • substring()

声明要获取特定String的子字符串。

语法为:

thisString.substring(from)
thisString.substring(from, to)

哪里,

thisString是声明的变量

from :定义为索引,子字符串将从此处开始

to :它也是结束子串之前的索引。它是可选的。

  • toInt()

它将Arduino中的有效String转换为整数类型。

语法为:

thisString.toInt()

哪里,

thisString是变量

所需的数据类型为long 。如果对话无效或字符串不是以整数开头,则返回零。

  • 浮()

它将Arduino中的有效String转换为float。

例如,字符串“ 150”将转换为“ 150.00”

语法为:

thisString.toFloat()

哪里,

thisString是变量

所需的数据类型为float 。如果对话无效或字符串不是以数字开头,则返回零。

  • 修剪()

它通过删除多余的空格来修改String。

语法为:

thisString.trim()

哪里,

thisString是变量

代码示例

让我们通过两个示例来了解String对象。

范例1:

让我们使用charAt()函数。

考虑下面的代码:

void setup()
{
  Serial.begin(9600);
  String thisString = "Welcome to Arduino";
  Serial.println(thisString.charAt(8));
}
void loop()
{
}

输出: t

t是在charAt()函数声明的索引8处的字符。

范例2:

让我们使用concat函数。

concat()-concat()函数用于组合字符串。

考虑下面的代码:

void setup()
{
  Serial.begin(9600);
  String thisString = "Welcome to Arduino";
  
  thisString.concat("String Object");
  
  Serial.println(thisString);
}
void loop()
{
}

输出量

同样,我们也可以使用其他String对象函数。