Méthode de sous-chaîne VB.NET avec EXEMPLE
⚡ Résumé intelligent
Sous-chaîne VB.Net extracLa méthode `str` extrait une portion d'une chaîne de caractères en spécifiant un index de départ et une longueur optionnelle. Appartenant à la classe `String`, elle compte les caractères à partir de zéro et renvoie une nouvelle chaîne sans modifier la chaîne d'origine.
Qu'est-ce qu'une sous-chaîne ?
La fonction Substring permet d'obtenir une partie d'une chaîne de caractères spécifiée. Cette méthode est définie dans la classe String. Microsoft VB.NetVous devez spécifier l'indice de départ à partir duquel la chaîne sera extraite.tracted. La chaîne sera extracted à partir de cet index jusqu'à la longueur que vous spécifiez.
Avant extracPour comprendre le texte, il est utile de connaître la syntaxe attendue par la méthode Substring.
Syntaxe de la sous-chaîne
La fonction accepte deux arguments comme indiqué dans la syntaxe suivante :
Public Function Substring(ByVal start_Index As Integer, ByVal sub_length As Integer) As String
Ici,
- Le mot-clé ByVal désigne le passage par valeur, qui est un mécanisme permettant de transmettre des arguments aux fonctions.
- L'index de départ est l'index à partir duquel la sous-chaîne sera extraite.
- sub_length indique la longueur maximale de la chaîne copiée à partir de start_Index. Cette longueur est exprimée en nombre de caractères. La fonction renverra l'exemple.tracsous-chaîne ted.
L'indice de départ est basé sur zéro, donc le premier caractère de la chaîne se trouve à la position 0 plutôt qu'à la position 1.
La syntaxe étant définie, les exemples suivants illustrent le fonctionnement de la méthode Substring dans une application console.
Exemples
Étape 1) Créez une nouvelle application console.
Étape 2) Ajoutez-y le code suivant :
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(0, 4) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
Étape 3) Cliquez sur le bouton Démarrer de la barre d'outils pour exécuter le code. Vous devriez obtenir le résultat suivant :
Nous avons utilisé le code suivant :
Explication de Code:
- Création d'un module nommé Module1.
- Démarrage de la sous-procédure principale.
- Définir une variable de type chaîne de caractères nommée st et lui attribuer la valeur Guru99 à cela.
- Définition d'une variable de type chaîne nommée 'subst' comme une sous-chaîne de la chaîne 'st' à partir de l'index 0 et d'une longueur de 4 caractères.
- Impression du texte et de la sous-chaîne ci-dessus sur la console.
- Suspendre la fenêtre de la console pendant un moment en attendant que l'utilisateur agisse pour la fermer.
- Fin de la sous-procédure principale.
- Fin du module.
Un argument
Et si nous transmettions un seul argument à la fonction ? La fonction copiera toutes les données de la chaîne qui commence à partir de cet index. Ce qui se passe, c'est que la fonction Substring copie en interne toutes les données de chaîne à cet index ainsi que celles qui suivent cet index. Par exemple:
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(4) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
Cliquez sur le bouton Démarrer pour exécuter le code. Il devrait renvoyer ce qui suit :
La fonction Substring a renvoyé 99. Nous lui avons passé le paramètre 4, ce qui signifie qu'elle commencera à extraire les valeurs manquantes.tracLa sous-chaîne allant du caractère à l'indice 4 jusqu'à la fin de la chaîne est définie comme suit : 9 est le caractère à l'indice 4 de la chaîne. Guru99, d'où l'extracLa tion a commencé là.
Outre la suppression des caractères à partir d'un seul index, la méthode Substring peut également cibler les caractères situés au milieu d'une chaîne.
Caractères du milieu
Il nous est également possible d'obtenir les caractères du milieu de la String en question. Dans ce cas, il suffit de fournir l’index de départ et la longueur de la chaîne dont nous avons besoin. Dans l'exemple suivant, nous obtenons une sous-chaîne de la chaîne spécifiée à partir de l'index 2 et la chaîne aura une longueur de 2 caractères :
Module Module1 Sub Main() Dim st As String = "Guru99" Dim subst As String = st.Substring(2, 2) Console.WriteLine("The substring is: {0}", subst) Console.ReadKey() End Sub End Module
Cliquez sur le bouton Démarrer de la barre d'outils pour exécuter le code. Vous obtiendrez le résultat suivant :
Dans l'exemple ci-dessus, la fonction Substring a renvoyé « ru ». Nous avons passé les paramètres (2, 2) à la fonction. Le premier 2 indique à la fonction de commencer l'extraction.tracLa première instruction indique à la fonction de renvoyer une sous-chaîne de 2 caractères seulement, tandis que la seconde instruction 2 lui demande de ne renvoyer qu'une sous-chaîne de 2 caractères. Cela signifie que l'extracLa sélection de la sous-chaîne doit commencer à partir de l'élément situé à l'index 2 de la chaîne. Guru99, soit r. Étant donné que la sous-chaîne renvoyée ne doit avoir qu'une longueur de 2 caractères, l'extracLa fonction tion ne peut pas aller au-delà du « u », d'où le résultat « ru ».
Un caractère
Nous pouvons utiliser la fonction Substring pour obtenir un seul caractère d’une chaîne. Dans un tel cas, il est nécessaire de faire une attribution mais le personnage est accessible directement. C'est un peu plus rapide. L'exemple suivant montre deux façons d'y parvenir :
Module Module1 Sub Main() Dim st As String = "Guru99" Dim mid1 As Char = st(1) Console.WriteLine(mid1) Dim mid2 As String = st.Substring(1, 1) Console.WriteLine(mid2) Console.ReadKey() End Sub End Module
Cliquez sur le bouton Démarrer pour exécuter le code. Vous obtiendrez le résultat suivant :
Nous avons utilisé le code suivant :
Explication de Code:
- Création d'un module nommé Module1.
- Démarrage de la sous-procédure principale.
- Définir une variable de type chaîne de caractères nommée st et lui attribuer la valeur Guru99 à cela.
- Définir une variable de chaîne nommée mid1 et obtenir le caractère à l'index 1 de String st. Ce caractère sera affecté à la variable mid1.
- Impression du caractère ci-dessus sur la console.
- Définir une variable de chaîne nommée mid2 et obtenir le caractère à l'index 1 d'une longueur de 1 à partir de String st. La longueur de 1 signifie qu'il renverra le même caractère à l'index de départ. Le comptage commence à partir de l'index de départ que vous spécifiez. Ce caractère sera affecté à la variable mid2.
- Impression du caractère ci-dessus sur la console.
- Suspendre la fenêtre de la console pendant un moment en attendant que l'utilisateur agisse pour la fermer.
- Fin de la sous-procédure principale.
- Fin du module.
Une fois que vous êtes à l'aise avec l'extracLorsqu'on utilise la méthode `ting` pour extraire des sous-chaînes, il est utile de savoir gérer les erreurs qu'elle peut générer.
Erreurs courantes de sous-chaînes et comment les éviter
La méthode Substring est stricte quant aux valeurs qu'elle accepte. Si un argument dépasse les limites de la chaîne de caractères, VB.Net lève une exception ArgumentOutOfRangeException et interrompt l'exécution du programme. Comprendre ces règles permet d'éviter cette erreur fréquente.
La méthode lève l'exception dans trois situations :
- L'index de départ est un nombre négatif.
- L'indice de départ est supérieur à la longueur de la chaîne.
- La somme de start_Index et sub_length indique que la chaîne de caractères se termine au-delà de sa fin.
Une erreur fréquente consiste à utiliser le résultat de la fonction IndexOf sans le vérifier au préalable. Si IndexOf ne trouve pas le caractère, elle renvoie -1, et passer -1 à Substring provoque une exception. Le code suivant permet d'éviter ce problème :
Module Module1 Sub Main() Dim st As String = "Guru99" Dim pos As Integer = st.IndexOf("9") If pos >= 0 Then Dim subst As String = st.Substring(pos) Console.WriteLine(subst) Else Console.WriteLine("Character not found") End If Console.ReadKey() End Sub End Module
La validation de l'index avant l'appel permet à votre application de fonctionner correctement, même lorsque la chaîne d'entrée ne contient pas le caractère attendu.
Obtenir une sous-chaîne avant ou après un caractère
Une tâche courante est extracPour extraire le texte qui précède ou suit un caractère spécifique, comme par exemple séparer une adresse e-mail au niveau du symbole @, VB.Net ne propose pas de fonction dédiée. Cependant, vous pouvez combiner IndexOf et Substring pour y parvenir.
Texte précédant un caractère : Appelez IndexOf pour localiser le caractère, puis transmettez cet index comme longueur à Substring :
Module Module1 Sub Main() Dim email As String = "guru99@example.com" Dim position As Integer = email.IndexOf("@") Dim namePart As String = email.Substring(0, position) Console.WriteLine(namePart) Console.ReadKey() End Sub End Module
Le code affiche guru99, la partie de la chaîne de caractères qui précède le signe @.
Texte après un caractère : Ajoutez 1 à l'index et laissez la sous-chaîne s'exécuter jusqu'à la fin de la chaîne :
Dim domainPart As String = email.Substring(position + 1) Console.WriteLine(domainPart)
Cela renvoie example.com. Lorsqu'un caractère apparaît plusieurs fois, utilisez LastIndexOf au lieu de IndexOf pour commencer à partir de la dernière occurrence au lieu de la première.
Fonctions de sous-chaîne : gauche, droite et milieu
Visual Basic hérite de trois fonctions de chaînes de caractères des versions précédentes : Left, Right et Mid. Elles se trouvent dans le répertoire `<string>`. MicrosoftL'espace de noms .VisualBasic peut sembler plus familier aux développeurs venant du VB classique.
- Gauche(chaîne, n) renvoie les n premiers caractères d'une chaîne de caractères.
- Droite(chaîne, n) renvoie les n derniers caractères d'une chaîne de caractères.
- Milieu(corde, début, longueur) renvoie une portion à partir d'une position de départ, un peu comme Substring.
La principale différence réside dans la façon dont elles comptent les positions. La fonction Mid commence à 1, le premier caractère se trouvant donc à la position 1, tandis que la méthode Substring commence à 0. Substring est l'approche standard de .NET et se comporte de la même manière dans tous les langages .NET ; c'est donc le choix recommandé pour le nouveau code. Réservez les fonctions Left, Right et Mid à la maintenance des anciens projets Visual Basic.






