Condividi tramite


Nozioni fondamentali sulle stringhe in Visual Basic

Il tipo di dati String rappresenta una serie di caratteri, ciascuno dei quali, a sua volta, rappresenta un'istanza del tipo di dati Char. In questo argomento vengono trattati i concetti di base relativi alle stringhe in Visual Basic.

Variabili di tipo String

È possibile assegnare un'istanza di una stringa a un valore letterale che rappresenta una serie di caratteri. Di seguito è riportato un esempio:

Dim MyString As String
MyString = "This is an example of the String data type"

In una variabile String è possibile utilizzare anche qualsiasi espressione che restituisca una stringa. Di seguito sono riportati alcuni esempi.

Dim OneString As String 
Dim TwoString As String
OneString = "one, two, three, four, five" 
' Evaluates to "two".
TwoString = OneString.Substring(5, 3)
OneString = "1" 
' Evaluates to "11".
TwoString = OneString & "1"

È necessario che qualsiasi valore letterale assegnato a una variabile String sia racchiuso tra virgolette (""). Questo implica che all'interno di una stringa le virgolette non possono essere rappresentate dal segno di virgolette. Il codice seguente, ad esempio, causa un errore di compilazione:

Dim myString As String 

' This line would cause an error. 
' myString = "He said, "Look at this example!""

L'errore è determinato dal fatto che durante la compilazione la stringa viene considerata terminata dopo il secondo segno di virgolette e il resto della stringa è interpretato come codice. Per risolvere il problema, Visual Basic interpreta le virgolette doppie presenti in una stringa letterale come virgolette nella stringa. Nell'esempio seguente viene illustrato il modo corretto per inserire le virgolette in una stringa:

' The value of myString is: He said, "Look at this example!"
myString = "He said, ""Look at this example!"""

Nell'esempio precedente, la coppia di virgolette che precede la parola Look diventa un segno di virgolette nella stringa. Le tre serie di virgolette alla fine della riga rappresentano le virgolette appartenenti alla stringa seguite dal carattere di terminazione della stringa.

Caratteri nelle stringhe

Una stringa può essere considerata una serie di valori Char. Il tipo String è dotato di funzioni incorporate che consentono di eseguire molte operazioni con una stringa, analogamente a quelle consentite dalle matrici. Come tutte le matrici in .NET Framework, queste sono matrici con indice in base zero. Per fare riferimento a un carattere specifico di una stringa, è possibile utilizzare la proprietà Chars che consente di accedere a un carattere in base alla sua posizione all'interno della stringa. Di seguito è riportato un esempio:

Dim myString As String = "ABCDE" 
Dim myChar As Char 
' The value of myChar is "D".
myChar = myString.Chars(3)

Nell'esempio precedente, la proprietà Chars della stringa restituisce il quarto carattere della stringa, ovvero D, e lo assegna a myChar. È inoltre possibile ottenere la lunghezza di una stringa particolare mediante la proprietà Length. Se è necessario eseguire su una stringa numerose operazioni analoghe a quelle consentite dalle matrici, è possibile convertire la stringa in una matrice di istanze di Char utilizzando la funzione ToCharArray della stringa. Di seguito è riportato un esempio:

Dim myString As String = "abcdefghijklmnop" 
Dim myArray As Char() = myString.ToCharArray

La variabile myArray ora contiene una matrice di istanze di Char, ognuna delle quali rappresenta un carattere di myString.

Immutabilità delle stringhe

Una stringa è immutabile: il suo valore, cioè, non può essere modificato dopo che è stata creata. Questo non impedisce tuttavia di assegnare più valori a una variabile di tipo String. Si consideri l'esempio seguente:

Dim myString As String = "This string is immutable"
myString = "Or is it?"

In questo esempio, dopo aver creato una variabile stringa, le viene assegnato un valore che successivamente viene modificato.

Più precisamente, nella prima riga viene creata un'istanza di tipo String cui viene assegnato il valore This string is immutable. Nella seconda riga dell'esempio viene creata una nuova istanza a cui si assegna il valore Or is it?; il riferimento alla prima istanza viene quindi ignorato e con la variabile stringa viene memorizzato il riferimento alla nuova istanza.

A differenza di altri tipi di dati intrinseci, String è un tipo di riferimento. Quando una variabile di tipo riferimento viene passata come argomento di una funzione o di una subroutine, invece del valore effettivo della stringa viene passato un riferimento all'indirizzo di memoria in cui sono memorizzati i dati. Nell'esempio precedente, quindi, il nome della variabile rimane lo stesso, ma punta a un'istanza nuova e diversa della classe String, che contiene il nuovo valore.

Vedere anche

Riferimenti

Tipo di dati String (Visual Basic)

Tipo di dati Char (Visual Basic)

Altre risorse

Introduzione alle stringhe in Visual Basic

Operazioni di base su stringhe in .NET Framework