Concepts de base des chaînes en Visual Basic
Le type de données String représente un ensemble de caractères (chacun représentant à son tour une instance du type de données Char). Cette rubrique présente les concepts de base des chaînes en Visual Basic.
Variables chaîne
Une instance d'une chaîne (String) peut être assignée à une valeur littérale qui représente un ensemble de caractères. Par exemple :
Dim MyString As String
MyString = "This is an example of the String data type"
Une variable String peut également accepter une expression qui a pour valeur 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 assigné à une variable String doit être inséré 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 crée une erreur de compilation :
Dim myString As String
' This line would cause an error.
' myString = "He said, "Look at this example!""
Ce code crée une erreur car le compilateur arrête 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 dans un littéral de chaîne comme un guillemet dans la chaîne. L'exemple suivant illustre la façon correcte de placer une chaîne entre guillemets :
' 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 qui précèdent le mot Look deviennent un guillemet dans la chaîne. Les trois guillemets à la fin de la ligne représentent un guillemet de la chaîne et le caractère de fin de la chaîne.
Caractères des chaînes
Une chaîne peut être perçue comme un ensemble de valeurs Char. Par ailleurs, le type String comprend des fonctions intégrées qui permettent d'effectuer de nombreuses manipulations sur une chaîne, semblables aux manipulations autorisées par les tableaux. Comme tous les tableaux dans .NET Framework, ce sont des tableaux de base zéro. Vous pouvez faire référence à un caractère spécifique d'une chaîne par l'intermédiaire de la propriété Chars, qui permet d'accéder à un caractère grâce à sa position 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 précédent, la propriété Chars de la chaîne retourne le quatrième caractère de la chaîne, D, et l'assigne à myChar. La propriété Length vous permet d'obtenir la longueur d'une chaîne particulière. Si vous devez exécuter plusieurs manipulations de type tableau sur une chaîne, vous pouvez la convertir en un tableau d'instances de Char à l'aide de la fonction ToCharArray de la chaîne. Par exemple :
Dim myString As String = "abcdefghijklmnop"
Dim myArray As Char() = myString.ToCharArray
La variable myArray contient à présent un tableau composé de valeurs Char, chacune représentant un caractère issu de myString.
Immuabilité des chaînes
Une chaîne est immuable, c'est-à-dire que sa valeur ne peut pas être modifiée après sa création. Toutefois, cela ne vous empêche pas d'assigner plusieurs valeurs à une variable chaîne. Prenons l'exemple suivant :
Dim myString As String = "This string is immutable"
myString = "Or is it?"
Dans cet exemple, une variable chaîne est créée, une valeur lui est affectée, puis sa valeur est modifiée.
Plus spécifiquement, une instance de type String est créée dans la première ligne, et la valeur This string is immutable lui est affectée. Dans la deuxième ligne de l'exemple, une nouvelle instance est créée et la valeur Or is it? lui est affectée. La variable 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 est 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ù sont stockées les données est passée à la place de la valeur réelle de la chaîne. Dans l'exemple précédent, le nom de la variable reste donc identique, mais pointe vers une nouvelle instance différente de la classe String, qui contient la nouvelle valeur.
Voir aussi
Référence
String, type de données (Visual Basic)
Char, type de données (Visual Basic)