Arduino - Objet String

Le deuxième type de chaîne utilisé dans la programmation Arduino est l'objet String.

Qu'est-ce qu'un objet?

Un objet est une construction qui contient à la fois des données et des fonctions. Un objet String peut être créé comme une variable et assigné une valeur ou une chaîne. L'objet String contient des fonctions (appelées «méthodes» en programmation orientée objet (POO)) qui opèrent sur les données de chaîne contenues dans l'objet String.

L'esquisse et l'explication suivantes expliquent clairement ce qu'est un objet et comment l'objet String est utilisé.

Exemple

void setup() { 
   String my_str = "This is my string.";
   Serial.begin(9600);

   // (1) print the string
   Serial.println(my_str);

   // (2) change the string to upper-case
   my_str.toUpperCase();
   Serial.println(my_str);

   // (3) overwrite the string
   my_str = "My new string.";
   Serial.println(my_str);

   // (4) replace a word in the string
   my_str.replace("string", "Arduino sketch");
   Serial.println(my_str);

   // (5) get the length of the string
   Serial.print("String length is: ");
   Serial.println(my_str.length());
}

void loop() { 

}

Résultat

This is my string.
THIS IS MY STRING.
My new string.
My new Arduino sketch.
String length is: 22

Un objet chaîne est créé et une valeur (ou chaîne) est attribuée en haut de l'esquisse.

String my_str = "This is my string." ;

Cela crée un objet String avec le nom my_str et lui donne la valeur "Ceci est ma chaîne.".

Cela peut être comparé à la création d'une variable et à lui attribuer une valeur telle qu'un entier -

int my_var = 102;

L'esquisse fonctionne de la manière suivante.

Impression de la chaîne

La chaîne peut être imprimée dans la fenêtre Serial Monitor comme une chaîne de tableau de caractères.

Convertir la chaîne en majuscules

L'objet chaîne my_str qui a été créé a un certain nombre de fonctions ou de méthodes qui peuvent être utilisées. Ces méthodes sont appelées en utilisant le nom des objets suivi de l'opérateur point (.) Puis du nom de la fonction à utiliser.

my_str.toUpperCase();

le toUpperCase() fonctionne sur la chaîne contenue dans le my_strobjet qui est de type String et convertit les données de chaîne (ou texte) que l'objet contient en caractères majuscules. Une liste des fonctions que la classe String contient peut être trouvée dans la référence Arduino String. Techniquement, String est appelé une classe et est utilisé pour créer des objets String.

Écraser une chaîne

L'opérateur d'affectation est utilisé pour affecter une nouvelle chaîne au my_str objet qui remplace l'ancienne chaîne

my_str = "My new string." ;

L'opérateur d'affectation ne peut pas être utilisé sur les chaînes de tableau de caractères, mais fonctionne uniquement sur les objets String.

Remplacement d'un mot dans la chaîne

La fonction replace () est utilisée pour remplacer la première chaîne qui lui est passée par la deuxième chaîne qui lui est passée. replace () est une autre fonction intégrée à la classe String et donc disponible pour une utilisation sur l'objet String my_str.

Obtenir la longueur de la chaîne

Obtenir la longueur de la chaîne se fait facilement en utilisant length (). Dans l'exemple d'esquisse, le résultat renvoyé par length () est passé directement à Serial.println () sans utiliser de variable intermédiaire.

Quand utiliser un objet chaîne

Un objet String est beaucoup plus facile à utiliser qu'un tableau de caractères chaîne. L'objet a des fonctions intégrées qui peuvent effectuer un certain nombre d'opérations sur des chaînes.

Le principal inconvénient de l'utilisation de l'objet String est qu'il utilise beaucoup de mémoire et peut rapidement utiliser la mémoire RAM Arduinos, ce qui peut entraîner le blocage, le blocage ou un comportement inattendu d'Arduino. Si un croquis sur un Arduino est petit et limite l'utilisation d'objets, il ne devrait y avoir aucun problème.

Les chaînes de tableaux de caractères sont plus difficiles à utiliser et vous devrez peut-être écrire vos propres fonctions pour opérer sur ces types de chaînes. L'avantage est que vous avez le contrôle sur la taille des tableaux de chaînes que vous créez, de sorte que vous pouvez garder les tableaux petits pour économiser de la mémoire.

Vous devez vous assurer que vous n'écrivez pas au-delà de la fin des limites du tableau avec des tableaux de chaînes. L'objet String n'a pas ce problème et s'occupera des limites de chaîne pour vous, à condition qu'il y ait suffisamment de mémoire pour qu'il puisse fonctionner. L'objet String peut essayer d'écrire dans la mémoire qui n'existe pas lorsqu'il manque de mémoire, mais n'écrira jamais sur la fin de la chaîne sur laquelle il fonctionne.

Où les chaînes sont utilisées

Dans ce chapitre, nous avons étudié les chaînes, leur comportement en mémoire et leurs opérations.

Les utilisations pratiques des chaînes seront couvertes dans la partie suivante de ce cours lorsque nous étudierons comment obtenir une entrée utilisateur à partir de la fenêtre Serial Monitor et enregistrer l'entrée dans une chaîne.