IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

extraire des entiers d'une chaine de caractères


Sujet :

VB.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 428
    Points : 86
    Points
    86
    Par défaut extraire des entiers d'une chaine de caractères
    Bonjour,
    j'ai une chaine de caractère qui contient des chiffres et des lettres que j'ai mis dans une variable exemple:
    name="essai 345:90 puis 34
    j'aimerai extraire de la variable seulement 345:90 et mettre ceci dans une variable en integer
    j'ai cherché sur le net mais pas trouvé?

  2. #2
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Tu as plusieurs possibilités :

    1) Découper manuellement ta chaine
    Il s'agit d'utiliser la méthode Split d'une chaîne de caractères pour la diviser en plusieurs chaine :
    • Dans un premier temps, tu la découpes en fonction des espaces. Cela te permet notamment de récupérer la partie qui t'intéresse (345:90)
    • Tu redécoupes la partie précédemment extraite avec, cette fois-ci le caractère ":" comme séparateur, afin de séparer les deux entiers.


    Il ne te reste qu'à convertir ces deux chaînes de caractères en entier.

    2) Utiliser des expressions régulières
    Autre méthode, utiliser une expression régulière. Une expression régulière te permet de travailler sur des chaînes de caractère à partir d'un pattern. Tu peux ainsi les vérifier, en extraire une partie, faire un remplacement, etc... en très peu de ligne de code.

    Ici, il faut construire une expression régulière qui vérifie la syntaxe de ta chaîne d'entrée, et qui te permet d'extraire les deux entiers (et tant qu'à faire, autant séparer les deux entiers distinctement pour pouvoir ensuite les traiter directement).

    Comme précédemment, il ne te restera qu'à convertir les deux chaînes de caractères en entier.

    Illustration

    Voici un exemple de code qui résume rapidement les deux approches :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
        Sub Main()
            Dim name As String = "essai 345:90 puis 34"
            Dim parts As String()
            Dim regex As Regex = New Regex("^\w+\s(\d+):(\d+)\s.*$")
            Dim matches As Match
            ' Via un découpage grâce à la méthode Split
            parts = name.Split(" "c)
            Console.WriteLine(parts(1))
            parts = parts(1).Split(":"c)
            Console.WriteLine(parts(0))
            Console.WriteLine(parts(1))
     
            ' Via une expression régulière
            matches = regex.Match(name)
            If matches.Success Then
                Console.WriteLine(matches.Groups(1).Value)
                Console.WriteLine(matches.Groups(2).Value)
            End If
     
            Console.ReadLine()
     
        End Sub
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extraire des champs dans une chaine de caractère
    Par clemuche dans le forum Requêtes
    Réponses: 1
    Dernier message: 25/02/2009, 23h24
  2. [Tableaux] Extraire des mots d'une chaine de caractères
    Par pratiquement dans le forum Langage
    Réponses: 5
    Dernier message: 24/01/2008, 09h20
  3. extraire des entiers d'une chaine de caractère
    Par 18Marie dans le forum Langage
    Réponses: 9
    Dernier message: 10/08/2006, 11h17
  4. [MySQL] extraire des nombre d'une chaine de caractères et addition
    Par Yotho dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/03/2006, 16h54
  5. Réponses: 9
    Dernier message: 17/01/2003, 11h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo