tirage un mot aleatoire - Java - Programmation
Marsh Posté le 24-09-2009 à 23:21:43
Tu split la phrase en mots en utilisant l'espace comme séparateur. Ce qui te donne une liste de mots, ensuite tu génères un chiffre aléatoire entre 0 et la longueur de la liste-1, que tu utilises comme indexe pour récupérer un élément.
Marsh Posté le 25-09-2009 à 10:02:42
cbeyls a écrit : Encore avec une expression régulière! Tu es gâté(e).
|
Bonjour,
MERCI pour votre reponse
but de mon prg est l'utlisateur saisie une phrase,puis le prg affiche les mots de cette phrase dans un ordre pris par hasard
j'ai ajouté les lignes comme vous avez conseillé:
package Mypackage;
import java.util.Random;
import java.util.Scanner;
import com.sun.org.apache.xalan.internal.xsltc.compiler.Pattern;
public class autre
{
public static void main(String[]args)
{
String phrase=new String();
Scanner sc=new Scanner(System.in);
System.out.println("Saissisez une phrase" );
phrase=sc.nextLine();
String[] mots = Pattern.compile("\\w+" ).split(phrase);
Random r = new Random();
String motAleatoire = mots[r.nextInt(mots.length)];
}
}
mais j'ai erreur lors compilation j'ai erreur suivant:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method compile(ClassGenerator, MethodGenerator) in the type Expression is not applicable for the arguments (String)
at Mypackage.autre.main(autre.java:14)
aidez moi,pour resoudre mon problem,s'il vous plaît
Marsh Posté le 25-09-2009 à 10:18:00
Citation : import com.sun.org.apache.xalan.internal.xsltc.compiler.Pattern; |
même commentaire que dans l'autre thread: réfléchis, un peu.
Marsh Posté le 25-09-2009 à 10:29:32
masklinn a écrit :
|
à la place ce ligne
import com.sun.org.apache.xalan.internal.xsltc.compiler.Pattern;
que je dois mettre
Marsh Posté le 25-09-2009 à 10:42:04
Commence par te demander pourquoi tu as mis cette ligne là, ce que tu voudrais qu'elle fasse.
Marsh Posté le 25-09-2009 à 11:09:18
esox_ch a écrit : Commence par te demander pourquoi tu as mis cette ligne là, ce que tu voudrais qu'elle fasse. |
je crois que cette ligne pour apache
Marsh Posté le 25-09-2009 à 11:29:30
Et pourquoi as tu besoin d'apache?
Marsh Posté le 25-09-2009 à 11:47:10
tu le fais exprès, domxaline, ou quoi ?
tu vois une classe Pattern dans un code et de suite tu importes le premier package qui contient une classe du même nom, sans réflechir un seul instant à quoi sert ce package ?
le package dont tu as besoin se trouve dans java.util. je te laisse chercher duquel il s'agit précisément.
la prochaine réponse de ta part qui ne montre pas un minimum de réflexion signera la fermeture de ce topic.
Marsh Posté le 25-09-2009 à 13:08:39
Il faut tourner l'Apache
Je t'ai dit que c'était une expression régulière à la façon Java, tu n'as pas lu la doc sur le sujet?
À part ça, si tu veux sortir les mots dans le désordre, je te conseille plutôt de mélanger les éléments du tableau au lieu d'en choisir plusieurs fois de suite un au hasard sinon tu risques d'avoir 2 fois le même.
Marsh Posté le 25-09-2009 à 17:27:34
Harkonnen a écrit : tu le fais exprès, domxaline, ou quoi ? |
je ne suis pas un expert en java;j'entraine d'apprendre java chez moi, pas dans le lycée ni dans l'université
s'il te plaît,au lieu de m'engueler;aide moi et encourage moi pour faire mieux
Marsh Posté le 25-09-2009 à 17:39:48
je t'ai déjà aidé en te disant l'endroit où se trouve le package dont tu as besoin (java.util). ce qu'il te reste à faire, c'est de chercher le package en question en fonction de ce que tu veux faire (compiler une Expression Régulière, ou regexp)
Marsh Posté le 25-09-2009 à 20:12:24
Harkonnen a écrit : je t'ai déjà aidé en te disant l'endroit où se trouve le package dont tu as besoin (java.util). ce qu'il te reste à faire, c'est de chercher le package en question en fonction de ce que tu veux faire (compiler une Expression Régulière, ou regexp) |
j"ai besoin encore ton aide,
je veux que le prg s'affiche jusqu'à fin des mots;c'est à dire
ex:utilisateur a entrée une phrase "je suis en vacances"
premiere fois on clique sur entrée prg affiche un mot et ensuite entrée cliqué un autre mot ainsi de suite, jusqu'a fin des phrase
|
en compilant j'ai erreur suivant
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Variable must provide either dimension expressions or an array initializer
at Mypackage.autre.main(autre.java:16)
Marsh Posté le 25-09-2009 à 20:18:37
Lis le message d'erreur..
Bon sang, les messages d'erreur sont pas là pour faire joli..
Edit: Merci Masklinn
Marsh Posté le 25-09-2009 à 20:19:50
esox_ch a écrit : Lit le message d'erreur.. |
lis
Marsh Posté le 25-09-2009 à 23:30:22
J'ai déjà du mal à comprendre ton français domxaline. Je crois que tu devrais acheter un bon livre de programmation genre "Java pour les nuls" et commencer par reproduire des exemples simples avant de te lancer là-dedans.
Si tu veux attendre que l'utilisateur appuye sur Entrée, tu n'as qu'à appeler nextLine() (avec Scanner) ou readLine() (avec BufferedReader) sans utiliser la valeur de retour.
Code :
|
Marsh Posté le 26-09-2009 à 10:15:12
package Mypackage;
import java.util.Random;
import java.util.Scanner;
import java.util.regex.*;
public class autre
{
public static void main(String[]args)
{
String phrase=new String();
Scanner sc=new Scanner(System.in);
System.out.println("Saissisez une phrase" );
phrase=sc.nextLine();
String[] mots = Pattern.compile("\\W+" ).split(phrase);
Random r = new Random();
String motAleatoire = mots[r.nextInt(mots.length)];
int[]tab=new int[5];
for(int i=0;i<tab.length;i++)
{
System.out.println(" " + motAleatoire);
}
}
}
j'ai corrigé mon prg
me donne resultat comme ça
mon saissi est: je suis en vacances
et me donne:
je
je
je
je
je
moi je veux diffèrent mot
merci de m'aider
Marsh Posté le 26-09-2009 à 10:23:10
Marsh Posté le 26-09-2009 à 11:15:27
domxaline... réflechis stp... réflechis à ce que tu écris, déroule ton programme dans ta tête, je sais pas moi, mais fait quelque chose. si tu es incapable de trouver ton erreur, alors un conseil : laisse tomber la prog.
et au passage :
Code :
|
tu crois vraiment qu'il est utile de déclarer un tableau pour l'utiliser comme compteur ?
Marsh Posté le 26-09-2009 à 12:52:05
"laisse tomber la prog. "
jamais j'essayerai,essayerai encore et encore pour attendre mon objectif;
peut être pas aujourd'hui; un jour je le réussirai
quand on apprend soi même pour programmer en java sans aide de personne,c'est difficile
pour savoir notre erreur et je suis un débutant,auriez vous aimabilité m'aider s'il vous plaît
Marsh Posté le 26-09-2009 à 15:25:17
ReplyMarsh Posté le 26-09-2009 à 17:57:32
cbeyls a écrit : Je t'ai filé la solution, pourquoi tu ne t'en inspires pas? |
merci pour ton solution;
quand même j'aimerai bien savoir
où est ce que je fais erreur dans mon prg merci de m'aider
Marsh Posté le 26-09-2009 à 20:41:18
ton erreur réside dans le fait que tu n'affectes ta variable "motAleatoire" qu'une seule fois, avant ta boucle. donc normal qu'il te sorte à chaque fois la même chose. tu dois aussi l'affecter à chaque passage dans ta boucle.
edit: et vire moi ce tableau qui te sert de compteur stp
Marsh Posté le 28-09-2009 à 14:11:24
*PAN*
Marsh Posté le 24-09-2009 à 23:08:33
Bonjour,
utlisateur entre une phrase et à partir de cette phrase comment faire un tirage aléatoire d'un mot en java ? aidez moi ,s'il vous plait