Löschen von Zeichen, die einem Muster entsprechen

Arduino:
Löschen von Zeichen, die einem Muster entsprechen

So geht’s:

String text = "A1r2d3u4i5n6o789";
String muster = "123456789";

void setup() {
  Serial.begin(9600);
  String bereinigterText = musterEntfernen(text, muster);
  Serial.println(bereinigterText); // Gibt "Arduino" aus
}

void loop() {
  // Nichts zu tun hier
}

String musterEntfernen(String quelle, String muster) {
  for (int i = 0; i < muster.length(); i++) {
    quelle.replace(String(muster[i]), "");
  }
  return quelle;
}

Tieferes Verständnis

Das Löschen von Zeichen nach einem Muster ist nichts Neues und stammt aus der Zeit vor Arduino, als Textverarbeitungen in der Softwareentwicklung üblich wurden. In anderen Sprachen gibt es oft eingebaute Funktionen wie regex (reguläre Ausdrücke), die das noch mächtiger machen. Arduinos String-Klasse ist einfacher, aber in vielen Fällen ausreichend. Die replace()-Funktion, wie im Beispiel genutzt, ist einfach zu verstehen und reicht für viele Musterlöschbedürfnisse aus. Bei der Arbeit mit Mikrokontrollern wie dem Arduino sollte man auf den Speicherverbrauch achten – große oder komplexe Muster können den begrenzten Speicher rasch füllen.

Siehe Auch