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

Jeromedu79 120 Messages postés dimanche 9 janvier 2011Date d'inscription 23 décembre 2012 Dernière intervention - 1 mars 2011 à 09:26 - Dernière réponse : cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention
- 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 

5 réponses

Répondre au sujet
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 1 mars 2011 à 10:05
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_ShayW
Sehnsucht 107 Messages postés samedi 25 novembre 2000Date d'inscription 4 mai 2013 Dernière intervention - 1 mars 2011 à 10:22
+3
Utile
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 !
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Sehnsucht
Jeromedu79 120 Messages postés dimanche 9 janvier 2011Date d'inscription 23 décembre 2012 Dernière intervention - 1 mars 2011 à 10:16
0
Utile
Merci pour ta réponse, ton code marche très bien.

Merci encore
Commenter la réponse de Jeromedu79
Jeromedu79 120 Messages postés dimanche 9 janvier 2011Date d'inscription 23 décembre 2012 Dernière intervention - 1 mars 2011 à 10:24
0
Utile
Okay Merci à vous deux
Commenter la réponse de Jeromedu79
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 1 mars 2011 à 11:49
0
Utile
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.