Arduino – String Objekte

Erstellt eine Instanz der String-Klasse. Die String-Klasse kann auch Strings aus verschiedenen Datentypen erstellen. Eine Instanz einer String-Klasse kann so einfach wie eine Variable erstellt, und mit einem Wert versehen werden.

String myString = "Dies ist ein String-Objekt.";

Sie können ein String-Objekt auch aus einer Zahl erstellen. Eine Zeichenfolge gemäß der ASCII-Tabelle wird erhalten. Die 20 Zahlen werden zu einer „20“ -String.

String myString = (20);

Das folgende Beispiel ist das HEX-Äquivalent der Dezimalstelle 20 werden 14.

String myString = (20, HEX);

Die 20-Binärform der Dezimalstelle ist 00010100.

String myString = (20, BIN);

Das Ergebnis des folgenden Beispiels ist 20.69. Im zweiten Parameter können Sie angeben, wie viele Dezimalstellen angezeigt werden sollen, und dies durch Runden tun. Es funktioniert nur mit Float- und Double-Datentypen.

String thisString = String(20.68859, 2);

Strings können auch verkettet werden.

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

  String myString1 = "Hello ";
  String myString2 = "World";
  String myString3 = myString1 + myString2;

  Serial.println(myString3);
}

void loop()
{

}

Wir können auch Strings vergleichen. Der Vergleich unterscheidet zwischen Groß- und Kleinschreibung, was bedeutet, dass „Hello“ nicht gleich mit „HELLO“ .

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

  String myString1 = "Hello";
  String myString2 = "HELLO";

  if(myString1 == myString2)
  {
    Serial.println("true");
  }
  else
  {
    Serial.println("false");
  }
}
void loop() 
{

}

Sie können Zeichenfolgen mit den folgenden Funktionen bearbeiten:

charAt () Gibt das n-te Zeichen des Strings zurück . Auch hier beginnt die Indizierung mit Null.

void setup() 
{
  Serial.begin(9600);
  String myString = "Hello";
  unsigned int n = 1;

  Serial.println(myString.charAt(n));
}
void loop()
{

}

compareTo () Vergleicht zwei Zeichenfolgen und testet, ob eine vor oder hinter der anderen oder gleich ist. Es vergleicht Zeichenfolgen zeichenweise mit den ASCII-Werten der Zeichen und gibt die Anzahl der Unterschiede zwischen ihnen zurück. Diese Zahl kann auch eine negative Zahl sein.

void setup() 
{
  Serial.begin(9600);
  String myString1 = "hello";
  String myString2 = "World";
  int n;

  n = myString1.compareTo(myString2);
  Serial.println(n);
}
void loop()
{

}

concat () hängt den Parameter an eine Zeichenfolge an.

String myString = "Hello";
myString.concat(" World");

endsWith () Überprüft, ob ein String mit einem anderen String-Zeichen endet. Wenn ja, wird true zurückgegeben, andernfalls false.

void setup() 
{
  Serial.begin(9600);
  String myString1 = "Hello";
  String myString2 = "o";

  if(myString1.endsWith(myString2))
  {
    Serial.println("true");
  }
  else
  {
    Serial.println("false");
  }
}
void loop()
{

}

equals () Wie der Vergleichsoperator im vorherigen Beispiel „==“ Der Vergleich unterscheidet zwischen Groß- und Kleinschreibung, was bedeutet, dass „Hello“ nicht gleich dem „HELLO“ -String ist.

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

  String myString1 = "Hello";
  String myString2 = "HELLO";

  if(myString1.equals(myString2))
  {
    Serial.println("true");
  }
  else
  {
    Serial.println("false");
  }
}
void loop() 
{

}

equalsIgnoreCase () Vergleicht die beiden Gleichheitszeichenfolgen. Der Vergleich unterscheidet nicht zwischen Groß- und Kleinschreibung, d. H. („Hallo“) ist gleich („HALLO“) String.

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

  String myString1 = "Hello";
  String myString2 = "HELLO";

  if(myString1.equalsIgnoreCase(myString2))
  {
    Serial.println("true");
  }
  else
  {
    Serial.println("false");
  }
}
void loop() 
{

}

length () Gibt die Anzahl der Zeichen in der Zeichenfolge ohne das nachfolgende Nullzeichen zurück.

String myString = "Hello World";

int length = myString.length();

Serial.println(length);

getBytes () Kopiert die Zeichenfolgen in den im Parameter angegebenen Puffer „buff“ mit der Länge „len“.

String myString = "Hello World";

unsigned int len = myString.length() + 1;
byte buff[len];

myString.getBytes(buff, len);

for (int i = 0; i < len; i++)
{
  Serial.println(buff[i]);
}

indexOf () Sucht nach einem Zeichen oder einer Zeichenfolge in einer anderen Zeichenfolge. Standardmäßig wird vom Anfang des Strings aus gesucht. Sie können jedoch auch von einem bestimmten Index aus suchen, indem Sie den Index im zweiten Parameter angeben, sodass Sie alle Vorkommen des Zeichens oder des Strings finden können.

myString.indexOf(val);
myString.indexOf(val, from);

String myString = "Hello World, Hello Arduino";

int index = myString.indexOf("Hello");

Serial.println(index);

lastIndexOf () Sucht nach einem Zeichen oder einer Zeichenfolge in einer anderen Zeichenfolge. Standardmäßig wird am Ende des Strings gesucht. Sie können jedoch auch mit der Suche von einem bestimmten Index aus beginnen, indem Sie den Index im zweiten Parameter angeben, sodass Sie alle Vorkommen des Zeichens oder des Strings finden können.

myString.lastIndexOf(val);
myString.lastIndexOf(val, from);

String myString = "Hello World, Hello Arduino";

int index = myString.lastIndexOf("Hello");

Serial.println(index);

remove () Entfernt Zeichen aus dem String vom angegebenen Index bis zum Ende des Strings oder vom angegebenen Index bis zur Anzahl der in der Anzahl angegebenen Indizes.

myString.remove(index);
myString.remove(index, count);

String myString = "Hello World";

myString.remove(2, 2);

Serial.println(myString);

replace () Ersetzt in myString alle Vorkommen von substring1 durch substring2.

String substring1 = "Arduino";
String substring2 = "World";
String myString = "Hello Arduino!";

Serial.println(myString);

myString.replace(substring1, substring2);

Serial.println(myString);

setCharAt () Setzt ein Zeichen in der Zeichenfolge an der Position „index“ mit dem Zeichen „char“. Dies hat keine Auswirkungen auf Indizes außerhalb der vorhandenen Länge des Strings.

myString.setCharAt(index, char)

String myString = "hello world";
Serial.println(myString);

myString.setCharAt(0, 'H');
myString.setCharAt(6, 'W');
Serial.println(myString);

StartsWith () Überprüft, ob ein String mit einem anderen String beginnt.

String myString = "Hello World";
String myString2 = "Hello";

if (myString.startsWith(myString2))
{
  Serial.println("Ez a String Hello-val kezdődik");
}
else
{
  Serial.println("Ez a String nem Hello-val kezdődik");
}

substring() Kopiert eine substring aus dem String aus dem Startindex. Sie können auch einen optionalen Endindex angeben, sodass bisher kopieren des substrings . Wenn der Endindex weggelassen wird, kopieren der substring bis zum Ende des Strings

String myString = "Hello World";
String mySubString = myString.substring(0, 4);

Serial.println(myString);
Serial.println(mySubString);

toCharArray () Kopiert String-Zeichen in den Buff-Puffer.

String myString = "Hello World";
byte buff[myString.length() + 1];

myString.toCharArray(buff, myString.length() + 1);

toDouble () Konvertiert einen String in ein double. Der String muss mit einer Ziffer beginnen.

String myString = "41.83";
double myDouble = myString.toDouble();

toInt () Konvertiert einen gültigen String in eine int. Die Zeichenfolge muss mit einer Ganzzahl beginnen.

String myString = "36";
int myInt = myString.toInt();

toFloat () Konvertiert einen gültigen String in einen float. Der String muss mit einer Ziffer beginnen.

String myString = "41.83";
float myFloat = myString.toFloat();

toLowerCase () Konvertiert den String in Kleinbuchstaben.

myString = "HELLO WORLD";
Serial.println(myString);

myString.toLowerCase();
Serial.println(myString);

toUpperCase () Konvertiert einen String in Großbuchstaben.

myString = "hello world";
Serial.println(myString);

myString.toUpperCase();
Serial.println(myString);

trim () Entfernt Leerzeichen vom Anfang und Ende in eines Strings.

myString = "  Hello World    ";

Serial.println(myString.length());

myString.trim();

Serial.println(myString.length());

Soviel zu den Strings. Im nächsten Abschnitt werden wir uns mit der Arduino – Serielle Kommunikation befassen.