English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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); }
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 \
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.
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.