Creazione di nuove stringhe in .NET

.NET consente di creare stringhe tramite una semplice assegnazione, oltre a eseguire l'overload del costruttore di classe per supportare la creazione di stringhe tramite una serie di parametri diversi. .NET fornisce diversi metodi nella classe System.String per creare nuovi oggetti stringa combinando più stringhe, matrici di stringhe o oggetti.

Creazione di stringhe tramite assegnazione

Il modo più semplice per creare un nuovo oggetto String consiste nell'assegnare un valore letterale stringa a un oggetto String.

Creazione di stringhe tramite un costruttore di classe

È possibile usare overload del costruttore della classe String per creare stringhe da matrici di caratteri. È anche possibile creare una nuova stringa duplicando un determinato carattere per un numero specifico di volte.

Metodi che restituiscono stringhe

Nella tabella seguente sono elencati diversi metodi utili che restituiscono nuovi oggetti stringa.

Nome metodo Utilizzo
String.Format Compila una stringa formattata da un insieme di oggetti di input.
String.Concat Compila stringhe da due o più stringhe.
String.Join Compila una nuova stringa combinando una matrice di stringhe.
String.Insert Compila una nuova stringa inserendo una stringa in corrispondenza dell'indice specificato di una stringa esistente.
String.CopyTo Copia i caratteri specificati di una stringa in una determinata posizione all'interno di una matrice di caratteri.

Formato

È possibile usare il metodo String.Format per creare stringhe formattate e concatenare stringhe che rappresentano più oggetti. Qualsiasi oggetto venga passato a questo metodo viene automaticamente convertito in una stringa. Se ad esempio l'applicazione deve visualizzare un valore Int32 e un valore DateTime, è possibile costruire con facilità una stringa che rappresenti tali valori usando il metodo Format. Per altre informazioni sulle convenzioni di formattazione usate con questo metodo, vedere la sezione relativa alla formattazione composita.

L'esempio di codice seguente usa il metodo Format per creare una stringa che usa una variabile integer.

int numberOfFleas = 12;
string miscInfo = String.Format("Your dog has {0} fleas. " +
                                "It is time to get a flea collar. " +
                                "The current universal date is: {1:u}.",
                                numberOfFleas, DateTime.Now);
Console.WriteLine(miscInfo);
// The example displays the following output:
//       Your dog has 12 fleas. It is time to get a flea collar.
//       The current universal date is: 2008-03-28 13:31:40Z.
Dim numberOfFleas As Integer = 12
Dim miscInfo As String = String.Format("Your dog has {0} fleas. " & _
                                       "It is time to get a flea collar. " & _
                                       "The current universal date is: {1:u}.", _
                                       numberOfFleas, Date.Now)
Console.WriteLine(miscInfo)
' The example displays the following output:
'       Your dog has 12 fleas. It is time to get a flea collar. 
'       The current universal date is: 2008-03-28 13:31:40Z.

In questo esempio DateTime.Now visualizza l'ora e la data correnti nel modo specificato dalle impostazioni cultura associate al thread corrente.

Concat

Il metodo String.Concat può essere usato per creare facilmente un nuovo oggetto stringa da due o più oggetti esistenti. Questo metodo rappresenta una modalità di concatenamento delle stringhe indipendente dal linguaggio. Il metodo accetta qualsiasi classe derivi da System.Object. Nell'esempio di codice che segue viene creata una stringa da due oggetti stringa esistenti e da un carattere di separazione.

string helloString1 = "Hello";
string helloString2 = "World!";
Console.WriteLine(String.Concat(helloString1, ' ', helloString2));
// The example displays the following output:
//      Hello World!
Dim helloString1 As String = "Hello"
Dim helloString2 As String = "World!"
Console.WriteLine(String.Concat(helloString1, " "c, helloString2))
' The example displays the following output:
'      Hello World!

Join.

Il metodo String.Join consente di creare una nuova stringa da una matrice di stringhe e da una stringa di separazione. Questo metodo è utile per concatenare più stringhe, creando un elenco, eventualmente separato da virgole.

Nell'esempio di codice seguente viene usato uno spazio per eseguire l'associazione di una matrice di stringhe.

string[] words = {"Hello", "and", "welcome", "to", "my" , "world!"};
Console.WriteLine(String.Join(" ", words));
// The example displays the following output:
//      Hello and welcome to my world!
Dim words() As String = {"Hello", "and", "welcome", "to", "my", "world!"}
Console.WriteLine(String.Join(" ", words))
' The example displays the following output:
'      Hello and welcome to my world!

Inserisci

Il metodo String.Insert consente di creare una nuova stringa inserendo una stringa in una posizione specificata in un'altra stringa. Questo metodo usa un indice a base zero. Nell'esempio di codice che segue viene inserita una stringa in corrispondenza della quinta posizione di indice di MyString e viene creata una nuova stringa con tale valore.

string sentence = "Once a time.";
 Console.WriteLine(sentence.Insert(4, " upon"));
 // The example displays the following output:
 //      Once upon a time.
Dim sentence As String = "Once a time."
Console.WriteLine(sentence.Insert(4, " upon"))
' The example displays the following output:
'      Once upon a time.

CopyTo

Il metodo String.CopyTo consente di copiare parti di una stringa in una matrice di caratteri. È possibile specificare sia l'indice iniziale della stringa sia il numero dei caratteri da copiare. Il metodo contiene l'indice di origine, una matrice di caratteri, l'indice di destinazione e il numero dei caratteri da copiare. Tutti gli indici sono a base zero.

Nell'esempio di codice riportato di seguito il metodo CopyTo viene usato per copiare nella prima posizione di indice di una matrice di caratteri i caratteri della parola "Hello" di un oggetto stringa.

string greeting = "Hello World!";
char[] charArray = {'W','h','e','r','e'};
Console.WriteLine("The original character array: {0}", new string(charArray));
greeting.CopyTo(0, charArray,0 ,5);
Console.WriteLine("The new character array: {0}", new string(charArray));
// The example displays the following output:
//       The original character array: Where
//       The new character array: Hello
Dim greeting As String = "Hello World!"
Dim charArray() As Char = {"W"c, "h"c, "e"c, "r"c, "e"c}
Console.WriteLine("The original character array: {0}", New String(charArray))
greeting.CopyTo(0, charArray, 0, 5)
Console.WriteLine("The new character array: {0}", New String(charArray))
' The example displays the following output:
'       The original character array: Where
'       The new character array: Hello

Vedi anche