Découper une chaine de caractère [Résolu]

Signaler
Messages postés
120
Date d'inscription
dimanche 9 janvier 2011
Statut
Membre
Dernière intervention
23 décembre 2012
-
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Bonjour,

Voila j'ai un texte 'Salut' déclaré en string :

Dim Texte as string = "Salut"


J'ai également un tableau de string pour la méthode split :

Dim Tableau() as string



Voila mon problème :

Je souhaiterais 'coupé' le mot 'salut' lettre par lettre de sorte à ce que la variable tableau comprennent :

tableau(0) comprennent S
tableau(1) comprennent a
tableau(2) comprennent l
tableau(3) comprennent u
tableau(4) comprennent t

Je voulais donc savoir ci c'était possible de venir à mon objectif avec la méthode split ?

Si non existe t-il un autre moyens ?


PS : Je sais utilisé split

(tableau = split(texte, "")


Mais je ne sais pas quoi mettre dans ""

Merci.
A voir également:

5 réponses

Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut
Dim str As String
        Dim lettres() As String
        Dim countlettre As Integer
        str = "toto"
        countlettre = 0
        For Each lettre As Char In str
            ReDim Preserve lettres(countlettre)
            lettres(countlettre) = lettre
            countlettre += 1
        Next


le split ici ne marche il faut un char delimiter
entre chaque lettre
par ex T*O*T*0
Messages postés
107
Date d'inscription
samedi 25 novembre 2000
Statut
Membre
Dernière intervention
4 mai 2013

Bonjour,

La méthode ToCharArray de la classe String joue exactement ce rôle (à ceci près qu'elle renvoie un tableau de Char plutôt qu'un tableau de String)

Une autre option serait d'utiliser la méthode de ShayW en utilisant une List(Of String) (les ReDim Preserve c'est limite obsolète mais surtout couteux comme opération) et s'il faut vraiment un tableau en sortie de boucle faire

Dim tableau As String() = maListe.ToArray()


Une dernière façon si tu utilises au moins la version 3.0 du framework serait d'utiliser LINQ
Dim str As String = "salut"
Dim tableau As String() = str.Select(Function(c) c.ToString()).ToArray()

Pas certain de l'utilité ici, mais à signaler tout de même.

Ah sinon je viens d'y penser utiliser la méthode de ShayW mais au lieu de s'embeter avec des ReDim Preserve, autant créer un tableau de la bonne taille dès le début (on la connait c'est la longueur de la chaine)
Dim str As String = "salut"
Dim lettres As String() = new String(str.Length - 1) {}


Cordialement !
Messages postés
120
Date d'inscription
dimanche 9 janvier 2011
Statut
Membre
Dernière intervention
23 décembre 2012
1
Merci pour ta réponse, ton code marche très bien.

Merci encore
Messages postés
120
Date d'inscription
dimanche 9 janvier 2011
Statut
Membre
Dernière intervention
23 décembre 2012
1
Okay Merci à vous deux
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
merci pour les infos
vraiment plus simple avec
Dim str As String
Dim lettres() As Char
str = "toto"
lettres = str.ToCharArray()