Salut tout le monde! Voila je suis un bleu et je voudrais savoir comment splitter un String en Tokens. Les TOKENS GENERES DOIVENT ETRE RETOURNES DANS LE DESORDRE( en Random quoi) C'est ce que je n'arrive pas a faire!
Merci
Version imprimable
Salut tout le monde! Voila je suis un bleu et je voudrais savoir comment splitter un String en Tokens. Les TOKENS GENERES DOIVENT ETRE RETOURNES DANS LE DESORDRE( en Random quoi) C'est ce que je n'arrive pas a faire!
Merci
Tu ne peux pas faire directement. Il te faut créer une classe qui s'en occupe.
Cette classe prend en paramètre la chaîne à découper et éventuellement le délimiteur. Ensuite, il te faut une méthode du genreA la construction, ta classe splitte la chaîne avec la méthode split.Code:public String getRandomToken()
Ta méthode getRandomToken retourne un des éléments du tableau obtenu avec le split.
J'espère avoir été clair :aie: Sinon, je tâcherai de mettre une solution :roll:
Le programme doit pouvoir lire n importe quel string en commande line , en input et ensuite retourner le meme string en random... seule sa forme initiale n'est pas acceptee!! Une fois encore je suis un bleu!!Citation:
Envoyé par Fifan31
Merci
Là tu as tes tokens mélangés dans tab...Code:
1
2 String[] tab = taString.split(); Collections.shuffle(Arrays.asList(tab));
Salut
Le Programme prend en input un String et le decoupe en tokens! jusque la pas de probleme, mais ce que j'arrive pas faire c'est de "randomiser" les tokens c-a-d obtenir une sortie aleatoire des tokens!
Merci
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 import java.util.StringTokenizer; class StringSplitter{ public static void main(String[]args){ if (args.length == 1) { StringTokenizer st = new StringTokenizer(args[0], " ,."); String[] tokens = new String[st.countTokens()]; int i=0; while (st.hasMoreTokens()) { tokens[i]=st.nextToken(); i++; } for (i=0;i<tokens.length;i++) { System.out.println(tokens[i]); } } else { System.out.println("Un String please!"); System.exit(1); } } }
Ca ne risque pas, tu n'as pas de fonction aléatoire dans ta procédure.
Quelque part, il faut faire quelque chose du genre :
Cordialement.Code:
1
2
3
4
5
6 de i = 0 à imamx-1 faire { j = valeur aléatoire de i entre 0 et imax vérifier que le nouveau j ne correspond pas à un i dèja affecté } afficher le tableau indexé en j
Pierre
En quoi le shuffle de rom ne te convient pas ?
Celui de Rom marche "partiellement" on peut tomber sur la forme initiale du string, ce que je veux pas! c le seul probleme!!
Ben alors simplement ça non ?
Code:
1
2
3
4
5
6
7
8 String[] tab = taString.split(); String[] newTab; do { List maListe = Arrays.asList(tab); Collections.shuffle(maListe); newTab = (String[]) maListe.toArray(maListe.size()); } while (Arrays.equals(tab,newTab));