Ellenőrizzük, hogy egy adott karakterlánc mely karakterekkel/alstringekkel kezdődik vagy végződik.
Utolsó felülvizsgálat: 2022.02.04 16:50
A startsWith()
és endsWith()
String függvények lehetővé teszik annak ellenőrzését, hogy egy adott String milyen karakterrel vagy részkarakterlánccal kezdődik vagy végződik. Ezek alapvetően az alsztring speciális esetei.
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
A startsWith()
és endsWith()
használható egy adott üzenet fejlécének keresésére, vagy egy karakterlánc végén található egyetlen karakterre. Használhatók offsettel is egy adott pozíciótól kezdődő részkarakterlánc keresésére. Például:
stringOne = "HTTP/1.1 200 OK";
if (stringOne.startsWith("200 OK", 9)) {
Serial.println("Got an OK from the server");
}
Ez funkcionálisan ugyanaz, mint ez:
stringOne = "HTTP/1.1 200 OK";
if (stringOne.substring(9) == "200 OK") {
Serial.println("Got an OK from the server");
}
Vigyázat: Ha olyan pozíciót keres, amely kívül esik a karakterlánc tartományán, akkor megjósolhatatlan eredményeket kap. Például a fenti példában a stringOne.startsWith("200 OK", 16) nem magát a karakterláncot ellenőrzi, hanem azt, ami a memóriában közvetlenül mögötte van. A legjobb eredmény érdekében győződjön meg arról, hogy a startsWith()
és endsWith()
értékekhez használt indexértékek 0 és a String length()
hossza között vannak.
/*
String startWith() and endsWith()
Példák a startsWith() és endsWith() használatára egy karakterláncban
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/StringStartsWithEndsWith
*/
void setup() {
// Nyissa meg a soros kommunikációt, és várja meg, amíg megnyílik a port:
Serial.begin(9600);
while (!Serial) {
; // várja meg a soros port csatlakozását. Csak a natív USB-porthoz szükséges
}
// küldj bevezetőt:
Serial.println("\n\nString startsWith() and endsWith():");
Serial.println();
}
void loop() {
// startsWith() ellenőrzi, hogy egy karakterlánc egy adott részkarakterlánccal kezdődik-e:
String stringOne = "HTTP/1.1 200 OK";
Serial.println(stringOne);
if (stringOne.startsWith("HTTP/1.1")) {
Serial.println("Server's using http version 1.1");
}
// a startsWith() függvény a karakterlánc eltolási pozíciójától is kereshet:
stringOne = "HTTP/1.1 200 OK";
if (stringOne.startsWith("200 OK", 9)) {
Serial.println("Got an OK from the server");
}
// Az endsWith() ellenőrzi, hogy egy karakterlánc egy adott karakterrel végződik-e:
String sensorReading = "sensor = ";
sensorReading += analogRead(A0);
Serial.print(sensorReading);
if (sensorReading.endsWith("0")) {
Serial.println(". This reading is divisible by ten");
} else {
Serial.println(". This reading is not divisible by ten");
}
// 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.