String substring függvény

Keressünk "kifejezéseket" egy adott karakterláncon belül.


Utolsó felülvizsgálat: 2022.02.04 16:50


A String substring() függvénye szorosan kapcsolódik a charAt(), startsWith() és endsWith() függvényekhez. Lehetővé teszi egy adott részkarakterlánc egy példányának megkeresését egy adott karakterláncon belül.

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 substring() csak egy paraméterrel keres egy adott részkarakterláncot a megadott pozíciótól a karakterlánc végéig. Azt várja, hogy az alkarakterlánc egészen a karakterlánc végéig terjedjen. Például:

String stringOne = "Content-Type: text/html";
// A substring(index) az index pozíciójától a végéig keresi az alkarakterláncot:
if (stringOne.substring(19) == "html") {
}

igaz, míg

String stringOne = "Content-Type: text/html";
// A substring(index) az index pozíciójától a végéig keresi az alkarakterláncot:
if (stringOne.substring(19) == "htm") {
}

nem igaz, mert a karakterláncban a htm után egy l van.

A substring() két paraméterrel egy adott részstringet keres az első paramétertől a másodikig. Például:

String stringOne = "Content-Type: text/html";
// egy karakterlánc közepén is kereshet egy részkarakterláncot:
if (stringOne.substring(14,18) == "text") {
}

Ez a text szót keresi a karakterláncban a 14-től 18-ig terjedő pozícióban.

Vigyázat: győződjön meg arról, hogy az index értéke a karakterlánc hosszán belül van, különben megjósolhatatlan eredményeket kap. Ezt a fajta hibát különösen nehéz megtalálni a substring() második példánál, ha a kezdőpozíció kisebb, mint a karakterlánc hossza, de a végpozíció nem.

/*
  String substring()

  Példák az alkarakterlánc használatára egy karakterláncban

  created 27 Jul 2010,
  modified 2 Apr 2012
  by Zach Eveland

  Ez a kód nyilvános.

  https://docs.arduino.cc/built-in-examples/strings/StringSubstring
*/

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  substring():");
  Serial.println();
}

void loop() {
  // a String beállítása:
  String stringOne = "Content-Type: text/html";
  Serial.println(stringOne);

  // A substring(index) az index pozíciójától a végéig keresi az alkarakterláncot:
  if (stringOne.substring(19) == "html") {
    Serial.println("It's an html file");
  }
  // egy karakterlánc közepén is kereshet egy részkarakterláncot:
  if (stringOne.substring(14, 18) == "text") {
    Serial.println("It's a text-based file");
  }

  // 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.