Le Stringhe sono Array di caratteri
In Dart è possibile scrivere stringhe sia con gli apici singoli ' che con i doppi apici ".
Nel caso in cui avessimo una stringa con all’interno una frase che usa degli apici dobbiamo indicare all’interprete che esso non delimita una stringa aggiungendo prima dell’apice un backslash (escape).
Esempio:
String cosa = 'Mi è caduta l\'arancia';L’output sarà:
Mi è caduta l'aranciaIndicizzazione delle stringhe
Funzione .length
Se richiamata con un array ma in questo caso una Stringa (array di caratteri), restituisce il numero degli elementi al suo interno (il numero di caratteri).
Prendere singoli elementi (o caratteri) da un array (o Stringa)
Indicare il numero dell’indice dell’array nel quale è allocato l’elemento o il carattere che cerchiamo all’interno di parentesi quadre alla destra dell’array.
Esempio:
String cosa = 'Mi è caduta l\'arancia';
print(cosa[1]);Output:
iConcatenazione
E’ possibile concatenare le stringhe.
Esempio:
String palla = "sfera";String cubo = "mattone";
print(palla + cubo); // Concatenazione delle variabili String palla e cubo.Output:
sferamattoneInterpolazione
Simile alla concatenazione, ma che permette di concatenare variabili di tipi diversi.
Esempio:
String palla = "sfera";int diametro = 6;
print(${palla} + ${diametro}; // Interpolazione delle variabili palla e diametro.Volendo è possibile farlo anche non utilizzando la sintassi con il dollaro ($) facendo semplicemente il toString(), ma non è sempre considerabile adatto.
Andare a capo nelle stringhe
E’ possibile andare a capo all’interno di un’unica stringa inserendo nel punto in cui vogliamo la fine di un rigo: \n.
La \ è il tipico carattere utilizzato per indicare all’interprete l’escape, mentre invece la n seguita all’escape, per l’interprete significa “new line”.
Multiline String (Stringhe multilinea)
Permette di scrivere una stringa su più linee del codice (sequenziali).
E’ una tecnica che può essere usata per comodità visiva al programmatore per scrivere messaggi in String particolarmente lungo o elaborati.
L’interprete considera anche le tabulazioni, quindi anche gli spazi che separano i caratteri scritti su ogni linea dall’inizio di ogni suddetta.
Row (r' ')
Serve ad indicare all’interprete che la stringa che segue al carattere r deve essere considerata come “row”, ossia “grezza” quindi esattamente per come scritta all’interno del codice.
Per fare un esempio, prima abbiamo parlato dei caratteri di escape, ma se r viene messo davanti alla stringa su cui stiamo lavorando, essi verrebbero considerati come normali caratteri e non applicati, quindi stampandoli a schermo:
Codice d’esempio:
String pippo = r'Il mio nome è\nMario';
print(pippo);Output d’esempio:
Il mio nome è\nMarioContains
E’ un metodo che restituisce un valore booleano se la Stringa che gli viene data come soggetto contiene un elemento indicato in input.
Esempio 1:
String franco = "Francopoli è una bellissima città";
print(franco.contains("n"));Output esempio 1:
trueEsempio 2:
String franco = "Francopoli è una bellissima città";
print(franco.contains("h"));Output esempio 2:
falseConta anche per gli spazi:
Esempio 3:
String franco = "Francopoli è una bellissima città";
print(franco.contains(" "));Output esempio 3:
trueindexOf e lastindexof
.indexOf():
Dandogli un elemento come input, restituisce il numero dell’indice dell’array selezionato del primo elemento corrispondente all’input (quello più a sinistra).
Esempio:
String franco = "Francopoli è una bellissima città";
print(franco.indexOf("n"));Output:
3.lastIndexOf():
Ha la stessa funzionalità di .indexOf(), con l’importante differenza che restituisce il numero dell’indice dell’array dell’ultimo elemento corrispondente con quello di input (quello più a destra).
Esempio:
String franco = "Francopoli è una bellissima città";
print(franco.lastIndexOf("n"));Output:
14.toUpperCase() e .toLowerCase()
.toUpperCase():
Converte il testo in maiuscolo.
Esempio:
String frase = "Il formaggio è buono";
print(frase.toUpperCase());Output:
IL FORMAGGIO È BUONO.toLowerCase():
Converte il testo in minuscolo.
Esempio:
String frase = "IL FORMAGGIO È BUONISSIMOOOOO!!!";
print(frase.toLowerCase());Output:
il formaggio è buonissimooooo!!!.split()
Permette di dividere una stringa in una lista, ad esempio all’interno delle parentesi di questa f unzione è possibile definire il pattern dello split.
Esempio:
String frase = "Oggi Marco ha fatto calisthenics";
print(frase.split(" "));Nell’esempio si può notare che il pattern inserito è " " che sta a significare: “Separa gli elementi nella lista ad ogni spazio”.
Infatti l’output sarà:
Output:
[Oggi, Marco, ha, fatto, calisthenics]Volendo il pattern può essere impostato anche con virgole e punti ((",") o (".")) o qualunque altra cosa si voglia o se ne abbia bisogno.
.substring()
La funzione substring restituisce in output una sottostringa della stringa data in input sotto condizione da noi specificate.
Ad esempio può permetterci di restituire come sottostringa da un certo indice in poi della stringa.
Esempio 1:
String frase = "Marco ha fatto i suoi bisogni in bagno";
print(frase.substring(5));Output Esempio 1:
ha fatto i suoi bisogni in bagnoNelle parentesi della funzione è anche possibile determinare un range:
Esempio 2:
String frase = "Marco ha fatto i suoi bisogni in bagno";
print(frase.substring(0, 5));