Arduino - Oggetto String

Il secondo tipo di stringa utilizzato nella programmazione di Arduino è l'oggetto String.

Cos'è un oggetto?

Un oggetto è un costrutto che contiene sia dati che funzioni. Un oggetto String può essere creato proprio come una variabile e assegnato un valore o una stringa. L'oggetto String contiene funzioni (chiamate "metodi" nella programmazione orientata agli oggetti (OOP)) che operano sui dati stringa contenuti nell'oggetto String.

Lo schizzo e la spiegazione seguenti chiariranno cos'è un oggetto e come viene utilizzato l'oggetto String.

Esempio

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() { 

}

Risultato

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

Viene creato un oggetto stringa e viene assegnato un valore (o stringa) nella parte superiore dello schizzo.

String my_str = "This is my string." ;

Questo crea un oggetto String con il nome my_str e gli assegna un valore di "Questa è la mia stringa.".

Questo può essere paragonato alla creazione di una variabile e all'assegnazione di un valore ad essa come un numero intero -

int my_var = 102;

Lo schizzo funziona nel modo seguente.

Stampa della stringa

La stringa può essere stampata nella finestra Serial Monitor proprio come una stringa di matrice di caratteri.

Converti la stringa in lettere maiuscole

L'oggetto stringa my_str che è stato creato ha un numero di funzioni o metodi che possono essere utilizzati su di esso. Questi metodi vengono richiamati utilizzando il nome degli oggetti seguito dall'operatore punto (.) E quindi il nome della funzione da utilizzare.

my_str.toUpperCase();

Il toUpperCase() la funzione opera sulla stringa contenuta nel file my_stroggetto che è di tipo String e converte i dati stringa (o testo) contenuti nell'oggetto in caratteri maiuscoli. Un elenco delle funzioni contenute nella classe String può essere trovato nel riferimento Arduino String. Tecnicamente, String è chiamata classe e viene utilizzata per creare oggetti String.

Sovrascrivi una stringa

L'operatore di assegnazione viene utilizzato per assegnare una nuova stringa al file my_str oggetto che sostituisce la vecchia stringa

my_str = "My new string." ;

L'operatore di assegnazione non può essere utilizzato su stringhe di array di caratteri, ma funziona solo su oggetti String.

Sostituzione di una parola nella stringa

La funzione replace () viene utilizzata per sostituire la prima stringa passatagli dalla seconda stringa passatele. replace () è un'altra funzione incorporata nella classe String e quindi è disponibile per l'uso sull'oggetto String my_str.

Ottenere la lunghezza della stringa

Ottenere la lunghezza della stringa è facile usando length (). Nello schizzo di esempio, il risultato restituito da length () viene passato direttamente a Serial.println () senza utilizzare una variabile intermedia.

Quando utilizzare un oggetto stringa

Un oggetto String è molto più facile da usare rispetto a un array di caratteri stringa. L'oggetto dispone di funzioni incorporate che possono eseguire una serie di operazioni sulle stringhe.

Lo svantaggio principale dell'utilizzo dell'oggetto String è che utilizza molta memoria e può utilizzare rapidamente la memoria RAM di Arduino, il che potrebbe causare il blocco, il crash o il comportamento imprevisto di Arduino. Se uno schizzo su un Arduino è piccolo e limita l'uso di oggetti, non dovrebbero esserci problemi.

Le stringhe di array di caratteri sono più difficili da usare e potrebbe essere necessario scrivere le proprie funzioni per operare su questi tipi di stringhe. Il vantaggio è che hai il controllo sulla dimensione degli array di stringhe che crei, quindi puoi mantenere gli array piccoli per risparmiare memoria.

È necessario assicurarsi di non scrivere oltre la fine dei limiti dell'array con array di stringhe. L'oggetto String non ha questo problema e si prenderà cura dei limiti delle stringhe per te, a condizione che ci sia abbastanza memoria su cui operare. L'oggetto String può provare a scrivere su una memoria che non esiste quando esaurisce la memoria, ma non scriverà mai oltre la fine della stringa su cui sta operando.

Dove vengono usate le stringhe

In questo capitolo abbiamo studiato le stringhe, come si comportano in memoria e le loro operazioni.

Gli usi pratici delle stringhe saranno trattati nella parte successiva di questo corso quando studieremo come ottenere l'input dell'utente dalla finestra Serial Monitor e salvare l'input in una stringa.