English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Stringa di C# (String)

In C#, la stringa è una serie di caratteri utilizzata per rappresentare il testo. Può essere un carattere, una parola o un lungo paragrafo racchiuso tra virgolette. Ecco i testi letterali.

"S"
"String"
"This is a string."

C# fornisce il tipo di dati String per memorizzare i literal di stringa. È possibile dichiarare una variabile di tipo stringa e assegnare un literal di stringa, come segue.

string ch = "S";
string word = "String";
string text = "This is a string.";

La dimensione massima di un oggetto stringa in memoria è di 2GB, circa un miliardo di caratteri. Tuttavia, nell'applicazione pratica, la sua dipendenza dal CPU e dalla memoria del computer è minima.

Ci sono due metodi per dichiarare una variabile stringa in C#. Utilizzare la classe System.String e la parola chiave string. Entrambi sono identici, senza differenze.

string str1 = "Hello"; // Utilizzando la parola chiave string
 
String str2 = "Hello"; // Utilizzando la classe System.String

In C#, le stringhe sono una raccolta o un array di caratteri. Pertanto, è possibile creare una stringa utilizzando un array di char e accedere alla stringa come a un array di char.

char[] chars = {'H','e','l','l','o'};
string str1 = new string(chars);  
String str2 = new String(chars); 
foreach (char c in str1)
{
    Console.WriteLine(c);
}

Caratteri speciali

Il testo del mondo reale può contenere qualsiasi carattere. In C#, poiché le stringhe sono racchiuse tra virgolette, non possono includere ("). Il seguente contenuto genererà un errore durante la compilazione.

string text = "This is a "string" in C#.";

In C#, il carattere di escape (backslash) \ è incluso prima dei caratteri speciali all'interno della stringa.

Utilizzare l'anteponimento di backslash (\) e caratteri speciali (come \, \n, \r, \t, ecc.) per includere il carattere在内的字符串中。

string text = "This is a \
string str = "xyzdef\\rabc";
string path = "\\\\mypc\\ shared\\project";

Ma aggiungere \\ a ogni carattere speciale può essere molto complicato. Le stringhe con prefisso @ devono essere considerate come letterali e non possono essere scappate da nessun carattere.

string str = @"xyzdef\rabc";
string path = @"\\mypc\shared\project";
string email = @"[email protected]";

Utilizzare @ e \ per dichiarare stringhe multilinha.

string str = @"this is a \

stringa multilinea \

string";

Attenzione, è necessario utilizzare il backslash \\ nella stringa per permettere la presenza di virgolette "". @ è applicabile solo ai caratteri speciali in C#.

string text = @"This is a \
string text = @"This is a \
string text = "This is a \

Concatenazione di stringhe

Più stringhe possono essere connesse utilizzando l'operatore +.

string name = "Mr." + "James " + "Bond", Code: 007";
 
string firstName = "James";
string lastName = "Bond";
string code = "007";
 
string agent = "Mr." + firstName + " " + lastName + ", Code: " + code;

Le stringhe in C# sono immutabili. Questo significa che sono lette una volta create nella memoria e non possono essere modificate. Ogni volta che si concatena una stringa, il CLR di .NET crea una nuova posizione di memoria per la stringa concatenata. Pertanto, se si concatena cinque o più stringhe, si consiglia di utilizzare StringBuilder invece delle stringhe.

Interpolazione delle stringhe

L'interpolazione delle stringhe è un metodo migliore per connettere stringhe. Utilizziamo il simbolo + per connettere variabili di stringa e stringhe statiche.

C#6 contiene un carattere speciale $, utilizzato per identificare le stringhe di interpolazione. Le stringhe di interpolazione sono una combinazione di stringhe statiche e variabili di stringa, dove le variabili di stringa devono essere inserite tra parentesi graffe {}.

string firstName = "James";
string lastName = "Bond";
string code = "007";
 
string fullName = "$Mr. {firstName} {lastName}, Code: {code}";

Nell'esempio di interpolazione riportato di seguito, $ rappresenta l'interpolazione della stringa, mentre {} includono le variabili di stringa da combinare con la stringa.

Usa due parentesi graffe "{{" o "}}" per includere { o } all'interno di una stringa.