Partager via


Notions de base des chaînes en Visual Basic

Le String type de données représente une série de caractères. Chaque caractère représente une instance du Char type de données. Cette rubrique présente les concepts de base des chaînes en Visual Basic.

Variables de chaîne

Une instance d’une chaîne peut être affectée à une valeur littérale qui représente une série de caractères. Par exemple:

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

Une String variable peut également accepter n’importe quelle expression qui prend la valeur d’une chaîne. Voici quelques exemples :

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"

Tout littéral affecté à une String variable doit être placé entre guillemets ( » « ). Cela signifie qu’un guillemet dans une chaîne ne peut pas être représenté par un guillemet. Par exemple, le code suivant provoque une erreur du compilateur :

Dim myString As String

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

Ce code provoque une erreur, car le compilateur met fin à la chaîne après le deuxième guillemet, et le reste de la chaîne est interprété comme du code. Pour résoudre ce problème, Visual Basic interprète deux guillemets consécutifs dans un littéral de chaîne comme un guillemet dans la chaîne résultante. L’exemple suivant illustre la bonne façon d’inclure un guillemet dans une chaîne :

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

Dans l’exemple précédent, les deux guillemets précédant le mot Look deviennent un guillemet dans la chaîne. Les trois guillemets à la fin de la ligne représentent un guillemet dans la chaîne et le caractère de terminaison de chaîne.

Les littéraux de chaîne peuvent contenir plusieurs lignes :

Dim x = "hello
world"

La chaîne résultante contient des séquences newline que vous avez utilisées dans votre littéral de chaîne (vbcr, vbcrlf, etc.). Vous n’avez plus besoin d’utiliser l’ancienne manière alternative :

Dim x = <xml><![CDATA[Hello
World]]></xml>.Value

Caractères dans des chaînes

Une chaîne peut être considérée comme une série de Char valeurs, et le String type a des fonctions intégrées qui vous permettent d’effectuer de nombreuses manipulations sur une chaîne qui ressemblent aux manipulations autorisées par les tableaux. Comme tous les tableaux dans .NET Framework, il s’agit de tableaux de base zéro. Vous pouvez faire référence à un caractère spécifique dans une chaîne par le biais de la Chars propriété, ce qui permet d’accéder à un caractère par la position dans laquelle elle apparaît dans la chaîne. Par exemple:

Dim myString As String = "ABCDE"
Dim myChar As Char

' The value of myChar is "D".
myChar = myString.Chars(3)

Dans l’exemple ci-dessus, la Chars propriété de la chaîne retourne le quatrième caractère de la chaîne, qui est D, et l’affecte à myChar. Vous pouvez également obtenir la longueur d’une chaîne particulière par le biais de la Length propriété. Si vous devez effectuer plusieurs manipulations de type tableau sur une chaîne, vous pouvez la convertir en tableau d’instances Char à l’aide de la ToCharArray fonction de la chaîne. Par exemple:

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

La variable myArray contient désormais un tableau de Char valeurs, chacune représentant un caractère à partir de myString.

Immuabilité des chaînes

Une chaîne est immuable, ce qui signifie que sa valeur ne peut pas être modifiée une fois qu’elle a été créée. Toutefois, cela n’empêche pas d’affecter plusieurs valeurs à une variable de chaîne. Prenons l’exemple suivant :

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

Ici, une variable de chaîne est créée, en fonction d’une valeur, puis sa valeur est modifiée.

Plus précisément, dans la première ligne, une instance de type String est créée et donne la valeur This string is immutable. Dans la deuxième ligne de l’exemple, une nouvelle instance est créée et donnée la valeur Or is it?, et la variable de chaîne ignore sa référence à la première instance et stocke une référence à la nouvelle instance.

Contrairement à d’autres types de données intrinsèques, String il s’agit d’un type référence. Lorsqu’une variable de type référence est passée en tant qu’argument à une fonction ou une sous-routine, une référence à l’adresse mémoire où les données sont stockées est passée au lieu de la valeur réelle de la chaîne. Ainsi, dans l’exemple précédent, le nom de la variable reste le même, mais il pointe vers une instance nouvelle et différente de la String classe, qui contient la nouvelle valeur.

Voir aussi