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

Messages postés
120
Date d'inscription
dimanche 9 janvier 2011
Dernière intervention
23 décembre 2012
- - Dernière réponse : cs_ShayW
Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
- 1 mars 2011 à 11:49
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.
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de cs_ShayW
Messages postés
107
Date d'inscription
samedi 25 novembre 2000
Dernière intervention
4 mai 2013
3
Merci
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 !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de Sehnsucht
Messages postés
120
Date d'inscription
dimanche 9 janvier 2011
Dernière intervention
23 décembre 2012
0
Merci
Merci pour ta réponse, ton code marche très bien.

Merci encore
Commenter la réponse de Jeromedu79
Messages postés
120
Date d'inscription
dimanche 9 janvier 2011
Dernière intervention
23 décembre 2012
0
Merci
Okay Merci à vous deux
Commenter la réponse de Jeromedu79
Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
0
Merci
merci pour les infos
vraiment plus simple avec
Dim str As String
Dim lettres() As Char
str = "toto"
lettres = str.ToCharArray()
Commenter la réponse de cs_ShayW

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.