StringAdditionOperator

Dizeleri çeşitli yollarla birlikte ekleyebilirsiniz. Buna birleştirme denir ve orijinal Dizenin, dizeyi birleştirdiğiniz Dize veya karakter dizisinin uzunluğuna göre daha uzun olmasına neden olur. + İşleci, bir Dizeyi başka bir Dizeyle, sabit bir karakter dizisiyle, sabit veya değişken bir sayının ASCII temsili ile veya sabit bir karakterle birleştirmenize olanak tanır.

// adding a constant integer to a string: stringThree = stringOne + 123; // adding a constant long integer 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;

İşlev, yukarıda belirtilen izin verilen veri türlerinden birini döndürürse, + işlecini bir işlevin sonuçlarını bir Dizeye eklemek için de kullanabilirsiniz. Örneğin,

stringThree = stringOne + millis();

millis() işlevi bir millis() eklenebilecek uzun bir tamsayı döndürdüğü için millis() izin millis() . Bunu da yapabilirsiniz:

stringThree = stringOne + analogRead(A0);

çünkü analogRead() bir tamsayı döndürür. Dize birleştirme, seri iletişim yoluyla, LCD ekranda, Ethernet bağlantısı üzerinden veya Dizelerin yararlı olduğu herhangi bir yerde görüntülemek için bir değer kombinasyonu ve bu değerlerin açıklamalarını bir Dize olarak görüntülemeniz gerektiğinde çok yararlı olabilir.

Dikkat: Beklenmedik sonuçlar elde edebileceğiniz için aynı satırda birden çok değişken türünü birleştirmeye dikkat etmelisiniz. Örneğin:

int sensorValue = analogRead(A0); String stringOne = "Sensor value: "; String stringThree = stringOne + sensorValue; Serial.println(stringThree);

"Sensör Değeri: 402" veya analogRead() sonucu ne olursa olsun, ancak

int sensorValue = analogRead(A0); String stringThree = "Sensor value: " + sensorValue; Serial.println(stringThree);

stringThree farklı veri türlerini birleştirmeye başlamadan önce hiçbir zaman başlangıç değerine stringThree olmadığından öngörülemeyen sonuçlar verir.

Hatalı başlatmanın hatalara neden olacağı başka bir örnek:

Serial.println("I want " + analogRead(A0) + " donuts");

Derleyici operatör önceliğini doğru işlemediğinden bu derlenmez. Öte yandan, aşağıdakiler derlenecektir, ancak beklendiği gibi çalışmaz:

int sensorValue = analogRead(A0); String stringThree = "I want " + sensorValue; Serial.println(stringThree + " donuts");

stringThree aynı nedenden ötürü düzgün çalışmıyor: stringThree farklı veri türlerini birleştirmeye başlamadan önce hiçbir başlangıç değerine sahip değildi.

En iyi sonuçları elde etmek için Dizelerinizi bitiştirmeden önce başlatın.

Gerekli Donanım

  • Arduino veya Genuino Kurulu

Devre

Bu örnek için devre yoktur, ancak kartınızın bilgisayarınıza USB ile bağlanması ve Arduino Yazılımının (IDE) seri monitör penceresinin açık olması gerekir.

Kod

Birkaç farklı birleştirme örneğinin çalışan bir örneği:

/*
  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 Jul 2010
  modified 2 Apr 2012
  by Tom Igoe

  This example code is in the public domain.

  http:egitim.aspx?e=StringAdditionOperator
*/


// 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 integer 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:
  stringOne = "millis() value: ";
  stringThree = stringOne + millis();
  Serial.println(stringThree);    // prints "The millis: 345345" or whatever value millis() has

  // do nothing while true:
  while (true);
}
[Kodu Al]

See Also