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
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 : Sélectionner tout - Visualiser dans une fenêtre à part public String getRandomToken()
Ta méthode getRandomToken retourne un des éléments du tableau obtenu avec le split.
J'espère avoir été clairSinon, je tâcherai de mettre une solution
![]()
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!!Envoyé par Fifan31
Merci
Là tu as tes tokens mélangés dans tab...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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));
Partager