Strings ver­ar­bei­ten

Lese­zeit: 7 Minu­ten

indexOf(Zeichen)

bestimmt die Posi­ti­on eines Zei­chens inner­halb des Strings

void setup()  
{ 
  Serial.begin(9600); 
  
  // auf serielle Verbindung warten
  while (!Serial) {;}

  String BeispielString = "Programmieren finde ich toll ;-)";    

  // das t suchen  
  int Suche = BeispielString.indexOf("t"); 
  Serial.print("Position t in " + BeispielString + ": "); 
  Serial.println(Suche); 
}

void loop() 
{
  // bleibt leer, Programm läuft nur einmal
}

isAl­pha()

String Eingabe = "";
bool BuchstabeTesten;

void setup()
{
  Serial.begin(9600);

  // auf serielle Verbindung warten
  while (!Serial) {
    ;
  }
}

void loop()
{
  while (Serial.available() > 0)
  {

    // Eingabe im Seriellen Monitor lesen
    char Buchstabe = Serial.read();

    // Eingabe auf Buchstaben prüfen
    // wenn ja, Zahl der Eingabe hinzufügen
    if (isAlpha(Buchstabe))
    {
      Eingabe += Buchstabe;
      BuchstabeTesten = true;
    }

    // Enter/Senden gedrückt
    // wenn BuchstabeTesten = true
    if (Buchstabe == '\n' && BuchstabeTesten)
    {
      Serial.println("Eingabe ist ein Buchstabe!");
      BuchstabeTesten = false;
    }
  }
}

isDi­git()

über­prüft, ob die Ein­ga­be eine Zahl ist

String Eingabe = "";
bool ZahlTesten;

void setup()
{
  Serial.begin(9600);

  // auf serielle Verbindung warten
  while (!Serial) { ; }
}

void loop()
{
  while (Serial.available() > 0)
  {

    // Eingabe im Seriellen Monitor lesen
    char Zahl = Serial.read();

    // Eingabe auf Zahl prüfen
    // wenn ja, Zahl der Eingabe hinzufügen
    if (isDigit(Zahl))
    {
      Eingabe += Zahl;
      ZahlTesten = true;
    }

    // Enter/Senden gedrückt
    // wenn ZahlTesten = true
    if (Zahl == '\n' && ZahlTesten)
    {
      Serial.println("Eingabe ist eine Zahl!");
      ZahlTesten = false;
    }
  }
}

length()

ermit­telt die Län­ge (Anzahl der Zei­chen) eines Strings

void setup()  
{ 
  Serial.begin(9600); 
  
  // auf serielle Verbindung warten
  while (!Serial) {;}

  String BeispielString = "Programmieren finde ich toll ;-)";    

  // Länge bestimmen
  int Laenge = BeispielString.length(); 
  Serial.print("L\u00e4nge des Strings " + BeispielString + ": "); 
  Serial.println(String(Laenge) + " Zeichen.");  
}

void loop() 
{
  // bleibt leer, Programm läuft nur einmal
}

substring(Start, Ende)

zeigt den Teil des Strings von Start bis Ende

Der String „"Pro­gram­mie­ren fin­de ich toll ;-)" soll auf sei­ne Län­ge und die Pos­ti­on des „t“ unter­sucht wer­den. Anschlie­ßend wird er in zwei Teil­strings zerlegt.

void setup()  
{ 
  Serial.begin(9600); 
  
  // auf serielle Verbindung warten
  while (!Serial) {;}

  String BeispielString = "Programmieren finde ich toll ;-)";    

  // Länge bestimmen
  int Laenge = BeispielString.length(); 
  Serial.print("L\u00e4nge des Strings: "); 
  Serial.println(Laenge);  
 
  // das t suchen  
  int Suche = BeispielString.indexOf("t"); 
  Serial.print("Position t: "); 
  Serial.println(Suche); 

  // String vom Anfang bis zum t 
  BeispielString.substring(0, Suche); 
  Serial.print("String bis zum t: ");  
  Serial.println(BeispielString.substring(0, Suche)); 

  // oder, weil Laenge schon bestimmt wurde:  
  // BeispielString.substring(suche + 1, Laenge); 
  Serial.print("String vom t bis zum Ende: ");      
  Serial.println(BeispielString.substring(Suche, BeispielString.length())); 
} 

void loop() 
{
  // bleibt leer, Programm läuft nur einmal
}

toLowerCase()/toUpperCase()

toLower­Ca­se() → in Klein­buch­sta­ben umwan­deln
toUp­per­Ca­se() → in Groß­buch­sta­ben umwandeln

void setup()
{
  Serial.begin(9600);
  
  // auf serielle Verbindung warten
  while (!Serial) {;}

  String BeispielString = "Programmieren finde ich toll ;-)";
  Serial.println(BeispielString);
  Serial.println("---------------------------------");
 
  // Kleinbuchstaben
  BeispielString.toLowerCase();
  Serial.println(BeispielString);
 
  // Großbuchstaben
  BeispielString.toUpperCase();
  Serial.println(BeispielString);
}

void loop() 
{
  // bleibt leer, Programm läuft nur einmal
}

startsWith(Zeichen)

stellt das ers­te Zei­chen eines Strings fest

void setup() 
{
  Serial.begin(9600);
  
  // auf serielle Verbindung warten
  while (!Serial) {;}
  String BeispielString ="Arduino";

  if (BeispielString.startsWith("A"))  
  Serial.println(BeispielString + " beginnt mit: A"); 
}

void loop() 
{
  // bleibt leer, Programm läuft nur einmal
}

endsWith(Zeichen)

prüft das letz­te Zei­chen eines Strings

void setup() 
{
  Serial.begin(9600);
  
  // auf serielle Verbindung warten
  while (!Serial) {;}

  String BeispielString ="Arduino";
  if (BeispielString.endsWith("o") Serial.println(BeispielString + " endet mit: o"); 
}

void loop() 
{
  // bleibt leer, Programm läuft nur einmal
}

trim()

ent­fernt Leer­zei­chen am Anfang und am Ende eines Strings

void setup()
{
  Serial.begin(9600);
  
  // auf serielle Verbindung warten
  while (!Serial) {;}

  String BeispielString = "  Programmieren finde ich toll ;-)  ";

  Serial.println("L\u00e4nge des Strings: " + String(BeispielString.length()));

  // Leerzeichen am Anfang und am Ende entfernen
  BeispielString.trim();
  Serial.println("L\u00e4nge des Strings: " + String(BeispielString.length()));
}

void loop()
{
  // bleibt leer, Programm läuft nur einmal
}

cha­rAt()

prüft ein Zei­chen an der ange­ge­be­nen Position

void setup()  
{ 
  Serial.begin(9600); 
  
  // auf serielle Verbindung warten
  while (!Serial) {;}

  String BeispielString = "Programmieren finde ich toll ;-)";    
  
  // erstes Zeichen lesen char(80) = P
  if (BeispielString.charAt(0) == char(80)) Serial.print("Erstes  Zeichen ist ein P"); 
 }

 void loop() 
{
  // bleibt leer, Programm läuft nur einmal
}

Bei­spiel: ASCII-Tabel­le mit char

Das dazu­ge­hö­ri­ge Programm:

set­Cha­rAt()

set­Cha­rAt ersetzt ein Zei­chen durch ein ande­res oder einen String durch einen anderen

void setup()
{
  Serial.begin(9600);
 
  // auf serielle Verbindung warten
  while (!Serial) {;}

  String BeispielString = "Alexander angelt alles außer Aalen. :-)";
  Serial.println(BeispielString);
  Serial.println("--------------------------------------");

  // Groß-/Kleinbuchstaben suchen und ersetzen
  for (int i = 0; i < BeispielString.length(); i ++)
  {
    // Suchstring und Ersatzstring in einfachen Anführungszeichen
    if (BeispielString.charAt(i) == 'A') BeispielString.setCharAt(i, 'I');
    if (BeispielString.charAt(i) == 'a') BeispielString.setCharAt(i, 'i');
  }
  Serial.println(BeispielString);
}

void loop() 
{
  // bleibt leer, Programm läuft nur einmal
}

replace()

replace() ersetzt ein Zei­chen durch ein anderes:

void setup()
{
  Serial.begin(9600);
  
  // auf serielle Verbindung warten
  while (!Serial) {;}

  String BeispielString = "Alexander angelt alles außer Aalen. :-)";
  Serial.println(BeispielString);
  Serial.println("--------------------------------------");

  // alle Kleinbuchstaben ersetzen
  // a  = zu ersetzendes Zeichen, i = Ersatzzeichen
  BeispielString.replace("a", "i");

  // Großbuchstaben suchen und ersetzen
  for (int i = 0; i < BeispielString.length(); i ++)
  {
    if (BeispielString.substring(i, i + 1) == "A") BeispielString.replace("A", "I");
  }
  Serial.println(BeispielString);
}

void loop() 
{
  // bleibt leer, Programm läuft nur einmal
}

tochar­Ar­ray()

tochar­Ar­ray() wan­delt einen String in ein char-Array um:

void setup()
{
  Serial.begin(9600);
  
  // auf serielle Verbindung warten
  while (!Serial) {;}

  String Satz = "Programmieren mit Arduino ist toll!";

  // Satz.length() -> Anzahl der Zeichen des Strings Satz ermitteln
  // Array definieren
  char SatzArray[Satz.length()];
 
  // char-Array Satz erstellen
  Satz.toCharArray(SatzArray, Satz.length() + 1);
 
  // Array anzeigen
  for (int i = 0; i < sizeof(SatzArray); i++)
  {
    Serial.print(SatzArray[i]);
  }
 
  Serial.println();
  Serial.println("-------------------------------------");

  // Array rückwärts anzeigen
  for (int i = sizeof(SatzArray); i >= 0; i--)
  {
    Serial.print(SatzArray[i]);
  }
}

void loop()
{
  // bleibt leer, Programm läuft nur einmal
}

Strings verketten Strings ver­ket­ten Variable Typ umwandeln Varia­ble Typ umwandeln Operatoren Ope­ra­to­ren Funktionen Funk­tio­nen Arrays Arrays   Variable Variable 

Letzte Aktualisierung: 7. Okt 2023 @ 11:42