String startsWith és endsWith függvényei

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.