Arduino内置教程-字符串-String Addition Operator
字符加法运算符
- 你可以用多种方法把字符串加在一起。这也叫字符串连接,而且它会由于你连接的字符串或者字符数组的长度,而导致原字符串变得更长。+运算符允许你来把字符串和另一个字符串,常量字符数组,ASCII,变量,或者常量字符等组合起来。
// adding a constant integer to a string:
stringThree = stringOne + 123;
// adding a constant long interger to a string:
stringThree = stringOne + 123456789;
// adding a constant character to a string:
stringThree = stringOne + 'A';
// adding a constant string to a string:
stringThree = stringOne + "abc";
// adding two Strings together:
stringThree = stringOne + stringTwo;
- 如果函数返回一个和上面说的数据类型相符的值,你可以用+运算符来把函数的结果加到字符串里。例如:
stringThree = stringOne + millis();
- 这是符合的值,因为millis()函数返回一个长整数,这是可以被加到字符串里的。你也可以这样做:
stringThree = stringOne + analogRead(A0);
- 因为analogRead()返回一个整数。当你要显示一个组合字符串(含数值和描述,用来显示串口通讯,LCD显示,以太网通讯,或者其他地方)时,字符串连接会很有用。
- 注意:你应该对连到一起的多个数据类型小心,因为你可能会得到一个出乎意料的结果。如:
int sensorValue = analogRead(A0);
String stringOne = "Sensor value: ";
String stringThree = stringOne + sensorValue;
Serial.println(stringThree);
- 结果是"Sensor Value: 402",或者不管analogRead()的结果怎样,只是:
int sensorValue = analogRead(A0);
String stringThree = "Sensor value: " + sensorValue;
Serial.println(stringThree);
- 得到不可预测的结果是因为stringThree在你开始连接不同数据类型前从来没有得到一个初始值。
- 这里是另外一个例子,不合适的初始值会引起错误:
Serial.println("I want " + analogRead(A0) + " donuts");
- 这个不能编译,因为编译器不能正确操作运算符的优先度。另一方面,下面的例子可以编译,但不能运行出预期的结果:
int sensorValue = analogRead(A0);
String stringThree = "I want " + sensorValue;
Serial.println(stringThree + " donuts");
它因为和前面同样的原因而不能正确运行:在你开始连接不同数据类型前,stringThree 从没有得到一个初始化的值。
而最好的结果是,在你连接他们前,初始化你的字符串。
硬件要求
- Arduino or Genuino 开发板
电路
- 这个例子不需要连接额外的电路,除了你的开发板需要连接到你的电脑,并且打开Arduino IDE的串口监视器窗口。
图由 Fritzing 软件绘制
样例代码
这里是几个不同连接工作的例子:
/*
Adding Strings together
Examples of how to add strings together
You can also add several different data types to string, as shown here:
created 27 July 2010
modified 2 Apr 2012
by Tom Igoe
http://www.arduino.cc/en/Tutorial/StringAdditionOperator
This example code is in the public domain.
*/
// declare three strings:
String stringOne, stringTwo, stringThree;
void setup() {
// initialize serial and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}
stringOne = String("You added ");
stringTwo = String("this string");
stringThree = String();
// send an intro:
Serial.println("\n\nAdding strings together (concatenation):");
Serial.println();
}
void loop() {
// adding a constant integer to a string:
stringThree = stringOne + 123;
Serial.println(stringThree); // prints "You added 123"
// adding a constant long interger to a string:
stringThree = stringOne + 123456789;
Serial.println(stringThree); // prints "You added 123456789"
// adding a constant character to a string:
stringThree = stringOne + 'A';
Serial.println(stringThree); // prints "You added A"
// adding a constant string to a string:
stringThree = stringOne + "abc";
Serial.println(stringThree); // prints "You added abc"
stringThree = stringOne + stringTwo;
Serial.println(stringThree); // prints "You added this string"
// adding a variable integer to a string:
int sensorValue = analogRead(A0);
stringOne = "Sensor value: ";
stringThree = stringOne + sensorValue;
Serial.println(stringThree); // prints "Sensor Value: 401" or whatever value analogRead(A0) has
// adding a variable long integer to a string:
long currentTime = millis();
stringOne = "millis() value: ";
stringThree = stringOne + millis();
Serial.println(stringThree); // prints "The millis: 345345" or whatever value currentTime has
// do nothing while true:
while (true);
}
更多
- String object – 字符串对象的参考
- CharacterAnalysis - 使用operators来识别对应的特征类型。
- StringAdditionOperator - 用不同方法把字符串加到一起。
- StringAppendOperator - 用+=运算符和concat()方法来添加东西到字符串里。
- StringCaseChanges - 改变字符串的状态。
- StringCharacters - 在字符串里获得或设置一个指定的字符的值
- StringComparisonOperators - 按字母排列顺序地比较字符串
- StringConstructors - 初始化字符串对象
- StringIndexOf - 寻找在字符串里字符的第一个或最后一个的状态
- StringLength - 获得和修剪字符串的长度
- StringLengthTrim - 获得和修剪字符串的长度
- StringReplace - 替换字符串里的个别字符
- StringStartsWithEndsWith - 检查一个给定的字符或子串(substrings)的开始或结尾
- StringSubstring - 在给定的字符串里寻找"phrases"
- StringToInt - 允许你把字符串转换成整数数字