Karakterláncok hozzáadása különféle módokon.
Utolsó felülvizsgálat: 2022.02.04 16:50
A Stringeket többféleképpen is összeadhatja. Ezt összefűzésnek nevezik, és ez azt eredményezi, hogy az eredeti karakterlánc hosszabb annál a karakterláncnál vagy karaktertömbnél, amellyel összefűzi. A +
operátor lehetővé teszi, hogy egy Stringet egy másik Stringgel kombináljon, konstans karaktertömbbel, egy állandó vagy változó szám ASCII-reprezentációjával vagy egy konstans karakterrel.
// egész szám állandó hozzáadása egy karakterlánchoz:
stringThree = stringOne + 123;
// long egész szám állandó hozzáadása egy karakterlánchoz:
stringThree = stringOne + 123456789;
// karakter állandó hozzáadása egy karakterlánchoz:
stringThree = stringOne + 'A';
// karakterlánc állandó hozzáadása egy karakterlánchoz:
stringThree = stringOne + "abc";
// két String összeadása:
stringThree = stringOne + stringTwo;
Használhatja a +
operátort is egy függvény eredményének karakterlánchoz való hozzáadásához, ha a függvény a fent említett engedélyezett adattípusok valamelyikét adja vissza. Például,
stringThree = stringOne + millis();
Ez megengedett, mivel a millis()
függvény egy long egész számot ad vissza, amely hozzáadható egy karakterlánchoz. Ezt is megteheti:
stringThree = stringOne + analogRead(A0);
mert az analogRead()
egész számot ad vissza. A karakterlánc-összefűzés nagyon hasznos lehet, ha az értékek kombinációját és ezek leírását egyetlen karakterláncban kell megjelenítenie, hogy soros kommunikáción keresztül, LCD-kijelzőn, Ethernet-kapcsolaton keresztül vagy bárhol, ahol a karakterláncok hasznosak lehetnek.
Vigyázat: Ügyeljen arra, hogy több változótípust fűzzen össze ugyanabban a sorban, mert váratlan eredményeket kaphat. Például:
int sensorValue = analogRead(A0);
String stringOne = "Sensor value: ";
String stringThree = stringOne + sensorValue;
Serial.println(stringThree);
eredmény: "Sensor Value: 402" vagy bármi legyen is az analógRead()
eredménye, de
int sensorValue = analogRead(A0);
String stringThree = "Sensor value: " + sensorValue;
Serial.println(stringThree);
kiszámíthatatlan eredményt ad, mivel a stringThree
soha nem kapott kezdeti értéket, mielőtt elkezdte volna a különböző adattípusok összefűzését.
Íme egy másik példa, ahol a helytelen inicializálás hibákat okoz:
Serial.println("I want " + analogRead(A0) + " donuts");
Ez nem lesz lefordítva, mert a fordító nem kezeli megfelelően az operátor elsőbbségét. Másrészt a következő ugyan lefordításra kerül, de nem az elvárt módon fut:
int sensorValue = analogRead(A0);
String stringThree = "I want " + sensorValue;
Serial.println(stringThree + " donuts");
Ugyanabból az okból nem fut megfelelően, mint korábban: a stringThree
soha nem kapott kezdeti értéket, mielőtt elkezdte volna összefűzni a különböző adattípusokat.
A legjobb eredmény érdekében inicializálja a karakterláncokat, mielőtt összefűzné őket.
Hardver szükséglet
Arduino kártya
Az áramkör
Ebben a példában nincs áramkör, bár a kártyát USB-n keresztül kell csatlakoztatni a számítógéphez, és az Arduino Software (IDE) soros monitor ablakának nyitva kell lennie.

A kód
Íme egy működő példa több különböző összefűzési példára:
/*
Adding Strings together
Példák a karakterláncok összeadására
Számos különböző adattípust is hozzáadhat a Stringhez, amint az itt látható:
created 27 Jul 2010
modified 2 Apr 2012
by Tom Igoe
Ez a kód nyilvános.
https://docs.arduino.cc/built-in-examples/strings/StringAdditionOperator
*/
// deklarál három Stringet:
String stringOne, stringTwo, stringThree;
void setup() {
// inicializálja a soros port, és megvárja, amíg megnyílik:
Serial.begin(9600);
while (!Serial) {
; // várja meg a soros port csatlakozását. Csak a natív USB-porthoz szükséges
}
stringOne = String("You added ");
stringTwo = String("this string");
stringThree = String();
// send an intro:
Serial.println("\n\nAdding Strings together (concatenation):");
Serial.println();
}
void loop() {
// egész szám állandó hozzáadása egy karakterlánchoz:
stringThree = stringOne + 123;
Serial.println(stringThree); // nyomtatva: "You added 123"
// long egész szám állandó hozzáadása egy karakterlánchoz:
stringThree = stringOne + 123456789;
Serial.println(stringThree); // nyomtatva: "You added 123456789"
// karakter állandó hozzáadása egy karakterlánchoz:
stringThree = stringOne + 'A';
Serial.println(stringThree); // nyomtatva: "You added A"
// karakterlánc állandó hozzáadása egy karakterlánchoz:
stringThree = stringOne + "abc";
Serial.println(stringThree); // nyomtatva: "You added abc"
stringThree = stringOne + stringTwo;
Serial.println(stringThree); // nyomtatva: "You added this string"
// egész szám változó hozzáadása egy karakterlánchoz:
int sensorValue = analogRead(A0);
stringOne = "Sensor value: ";
stringThree = stringOne + sensorValue;
Serial.println(stringThree); // nyomtatva: "Sensor Value: 401" or whatever value analogRead(A0) has
// long egész szám változó hozzáadása egy karakterlánchoz:
stringOne = "millis() value: ";
stringThree = stringOne + millis();
Serial.println(stringThree); // nyomtatva: "The millis: 345345" vagy bármilyen értéke is van a millis()-nek
// ne csinálj semmit, amíg igaz:
while (true);
}
Tudj meg többet
További alapvető oktatóanyagokat a beépített példák részben talál.
Felfedezheti a nyelvi referenciát is, az Arduino programozási nyelv részletes gyűjteményét.