1. Studiamo meglio il tipo string
Il tipo string è uno dei tipi più usati in C#. Forse proprio il più usato in assoluto. È un tipo davvero fantastico, perché in queste variabili puoi salvare del testo. E poi, a differenza dei tipi int e double, gli oggetti di tipo string hanno un sacco di funzioni diverse, e con queste funzioni puoi fare un sacco di cose interessanti.
Inoltre, tutti gli oggetti in C# (proprio tutti) possono essere convertiti in tipo string. O meglio, per essere precisi, tutti gli oggetti in C# restituiscono la loro rappresentazione testuale (stringa). Torneremo spesso su questo tipo (è davvero utile e interessante), ma oggi vediamo le basi.
Creare variabili di tipo string
Il tipo string è fatto per salvare stringhe (testo). Per creare nel codice una variabile che possa contenere testo, devi usare il comando:
string nome;
Dove nome è il nome della variabile.
Esempi:
| Comando | Descrizione |
|---|---|
| string name; | Si crea una variabile stringa name |
| string message; | Si crea una variabile stringa message |
| string text; | Si crea una variabile stringa text |
Proprio come con i tipi int e double, puoi usare una scrittura compatta per creare più variabili di tipo string:
string nome1, nome2, nome3;
2. Assegnare valori alle variabili di tipo string
Per mettere un valore in una variabile di tipo string, devi usare il comando:
nome = "valore";
Ed ecco la prima differenza rispetto ai tipi già visti. Tutti i valori di tipo string sono stringhe di testo e devono essere racchiusi tra doppi apici.
Esempi:
| Comando | Nota |
|---|---|
| string name = "Anja"; | La variabile name contiene il testo Anja |
| string city = "New York"; | La variabile city contiene il testo New York |
| string message = "Hello!"; | La variabile message contiene il testo Hello! |
3. Inizializzazione delle variabili di tipo string
Come per i tipi int e double, le variabili di tipo string si possono inizializzare subito quando le crei. Tra l'altro, puoi farlo con tutti i tipi in C#. Quindi non ne parleremo più.
string nome1 = "stringa1", nome2 = "stringa2";
Esempio di creazione e inizializzazione di variabili
string name = "Anja", city = "New York", message = "Hello!";
Puoi cambiare solo variabili che hanno un valore
Il compilatore C# si lamenterà se dichiari una variabile senza assegnarle nessun valore e poi provi a usarla.
Questo codice non funzionerà:
string name;
Console.WriteLine(name); // La variabile name non è inizializzata. Il programma non si compila.
int a;
a++; // La variabile a non è inizializzata. Il programma non si compila.
double x;
double y = x; // La variabile x non è inizializzata. Il programma non si compila.
4. Concatenazione — unire le stringhe
C'è una cosa molto interessante e semplice che puoi fare con le stringhe in C#: puoi unirle. Questa operazione si chiama concatenazione. O, per ricordarla meglio — Kon-Ka-Te-Na-Zione. Anche se spesso la chiamano "unire le stringhe" o semplicemente "somma di stringhe".
Per unire due stringhe, devi usare il simbolo +. È facilissimo:
"valore1" + "valore2"
Esempi:
| Comando | Nota |
|---|---|
| string name = "Anja" + "Anja"; | name contiene la stringa AnjaAnja |
| string city = "New York" + "Anja"; | city contiene la stringa New YorkAnja |
| string message = "Hello! " + "Anja"; | message contiene la stringa Hello! Anja |
Ovviamente puoi sommare tante stringhe insieme, e anche sommare stringhe e variabili.
Esempi:
string name = "Anja"; // name contiene la stringa Anja
string city = "New York"; // city contiene la stringa New York
string message = "Hello!" + city + name + city; // message contiene la stringa Hello!New YorkAnjaNew York
5. Stringhe vuote
Nell'ultimo esempio si vede che il testo nella variabile message non si legge bene, perché mancano gli spazi. Per mettere uno spazio o più, basta scriverli nel codice e racchiuderli tra doppi apici. È più facile di quanto sembra:
" "
Tra l'altro, se tra gli apici non lasci proprio niente (scrivi due doppi apici di fila), ottieni la cosiddetta "stringa vuota":
""
Da un lato, sembra che ci sia, ma dall'altro, quando la stampi a schermo non appare nulla. E quando la unisci ad altre stringhe non succede niente. È un po' come lo zero, ma per le stringhe.
6. Escaping dei caratteri speciali nelle stringhe
Sai già che le stringhe sono racchiuse tra doppi apici. Ma cosa fai se vuoi mettere degli apici dentro la stringa? Se li scrivi nella stringa, il compilatore non penserà che sia la fine della stringa?
Esatto. Lo penserà. Perciò gli apici dentro il testo si scrivono con la coppia di simboli \". E il codice sarà così:
string quote = "Lui ha detto: \"Ciao!\"";
Console.WriteLine(quote); // Lui ha detto: "Ciao!"
In realtà è ancora un po' più furbo. Il simbolo \ è considerato speciale (di controllo) dentro le stringhe. Con lui puoi inserire vari "caratteri non stampabili" come il ritorno a capo, la tabulazione ecc. E per scrivere proprio il simbolo \ devi scriverlo due volte.
Ecco le 4 combinazioni più usate:
| Scrittura | Significato |
|---|---|
| \n | Nuova riga (newline) |
| \t | Tabulazione (spazio) |
| \\ | Letteralmente \ |
| \" | Apici dentro la stringa |
Esempio:
string multiline = "Stringa 1\nStringa 2";
Console.WriteLine(multiline);
Stamperà:
// Stringa 1
// Stringa 2
7. Interpolazione di stringhe ($-stringhe)
C# è un linguaggio super moderno, e ti permette di inserire facilmente e in modo elegante i valori delle variabili dentro una stringa usando l'operazione di interpolazione — basta mettere il simbolo $ davanti agli apici, e dentro la stringa usare le parentesi graffe {}. Questo già lo sai.
Quello che forse non sai ancora è che dentro le parentesi graffe puoi usare anche espressioni intere e persino chiamare funzioni! Esempio:
string name = "Olja";
int birthYear = 1999;
string info = $"Mi chiamo {name}, ho {2025-birthYear} anni.";
Console.WriteLine(info); // Mi chiamo Olja, ho 26 anni.
Questo modo rende il codice molto più leggibile e riduce gli errori (e le parentesi). Parleremo meglio di interpolazione in una lezione a parte, ma per i casi semplici puoi già usarla senza problemi.
8. Funzioni proprie delle stringhe
Il tipo string ha delle funzioni proprie (si chiamano anche metodi). Ce ne sono un sacco, e rendono la vita dei programmatori molto più facile. Oggi ne vediamo alcune (le più semplici). Esempio:
| Funzione | Descrizione | Esempio di risultato |
|---|---|---|
| str.Length | Lunghezza della stringa | "abc".Length → 3 |
| str.ToUpper() | In maiuscolo | "abc".ToUpper() → "ABC" |
| str.ToLower() | In minuscolo | "ABC".ToLower() → "abc" |
| str.Trim() | Togliere spazi ai lati | " x y ".Trim() → "x y" |
Esempi di uso delle funzioni delle stringhe
Tutte queste funzioni si chiamano così: variabile.funzione(...) .
Scoprire la lunghezza di una stringa:
string name = "Andrej";
int length = name.Length;
Console.WriteLine(length); // 6, perché sono 6 lettere
Convertire una stringa in maiuscolo o minuscolo:
string original = "Privet";
Console.WriteLine(original.ToUpper()); // PRIVET
Console.WriteLine(original.ToLower()); // privet
Togliere gli spazi ai lati (super utile quando si legge da tastiera):
string messy = " hello ";
Console.WriteLine(messy.Trim()); // "hello"
Ognuna di queste funzioni restituisce una nuova stringa, la vecchia stringa non cambia.
GO TO FULL VERSION