CodeGym /Corsi /C# SELF /Stringhe e testo: tipo string, lavorare con le stringhe

Stringhe e testo: tipo string, lavorare con le stringhe

C# SELF
Livello 2, Lezione 2
Disponibile

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;
Creazione di una variabile di tipo string

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;
Creazione di variabili di tipo string

2. Assegnare valori alle variabili di tipo string

Per mettere un valore in una variabile di tipo string, devi usare il comando:

nome = "valore";
Assegnare un valore a una variabile di tipo string

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";
Creazione di variabili di tipo string

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"
Concatenazione di due stringhe

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:

" "
Stringa che contiene uno spazio

Tra l'altro, se tra gli apici non lasci proprio niente (scrivi due doppi apici di fila), ottieni la cosiddetta "stringa vuota":

""
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.

2
Compito
C# SELF, livello 2, lezione 2
Bloccato
Creazione e inizializzazione di variabili stringa
Creazione e inizializzazione di variabili stringa
2
Compito
C# SELF, livello 2, lezione 2
Bloccato
Lavorare con le stringhe e interpolazione
Lavorare con le stringhe e interpolazione
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION