Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1413 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  tirage un mot aleatoire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

tirage un mot aleatoire

n°1926571
domxaline
Posté le 24-09-2009 à 23:08:33  profilanswer
 

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

mood
Publicité
Posté le 24-09-2009 à 23:08:33  profilanswer
 

n°1926573
esox_ch
Posté le 24-09-2009 à 23:21:43  profilanswer
 

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.


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1926574
cbeyls
Hail to the King, Baby
Posté le 24-09-2009 à 23:23:25  profilanswer
 

Encore avec une expression régulière! Tu es gâté(e).
 

Code :
  1. String[] mots = Pattern.compile("\\w+" ).split(phrase);
  2. Random r = new Random();
  3. String motAleatoire = mots[r.nextInt(mots.length)];

n°1926635
domxaline
Posté le 25-09-2009 à 10:02:42  profilanswer
 

cbeyls a écrit :

Encore avec une expression régulière! Tu es gâté(e).
 

Code :
  1. String[] mots = Pattern.compile("\\w+" ).split(phrase);
  2. Random r = new Random();
  3. String motAleatoire = mots[r.nextInt(mots.length)];



 
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

n°1926641
masklinn
í dag viðrar vel til loftárása
Posté le 25-09-2009 à 10:18:00  profilanswer
 

Citation :

import com.sun.org.apache.xalan.internal.xsltc.compiler.Pattern;


 [:prozac]

 

même commentaire que dans l'autre thread: réfléchis, un peu.

Message cité 1 fois
Message édité par masklinn le 25-09-2009 à 10:18:20

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1926650
domxaline
Posté le 25-09-2009 à 10:29:32  profilanswer
 

masklinn a écrit :

Citation :

import com.sun.org.apache.xalan.internal.xsltc.compiler.Pattern;


 [:prozac]  
 
même commentaire que dans l'autre thread: réfléchis, un peu.


 
à la place ce ligne  
import com.sun.org.apache.xalan.internal.xsltc.compiler.Pattern;  
que je dois mettre

n°1926655
esox_ch
Posté le 25-09-2009 à 10:42:04  profilanswer
 

Commence par te demander pourquoi tu as mis cette ligne là, ce que tu voudrais qu'elle fasse.


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1926667
domxaline
Posté le 25-09-2009 à 11:09:18  profilanswer
 

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

n°1926672
esox_ch
Posté le 25-09-2009 à 11:29:30  profilanswer
 

Et pourquoi as tu besoin d'apache?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1926682
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-09-2009 à 11:47:10  profilanswer
 

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.


---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le 25-09-2009 à 11:47:10  profilanswer
 

n°1926695
cbeyls
Hail to the King, Baby
Posté le 25-09-2009 à 13:08:39  profilanswer
 

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.


Message édité par cbeyls le 25-09-2009 à 13:09:36
n°1926771
domxaline
Posté le 25-09-2009 à 17:27:34  profilanswer
 

Harkonnen a écrit :

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.


 
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

n°1926776
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 25-09-2009 à 17:39:48  profilanswer
 

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 un string dans l'array (Paris Hilton)
n°1926806
domxaline
Posté le 25-09-2009 à 20:12:24  profilanswer
 

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
 

 
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[];
for(int i=0;i<tab.length;i++)
{
System.out.println(" " + motAleatoire);
}
}
}


 
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)

n°1926811
esox_ch
Posté le 25-09-2009 à 20:18:37  profilanswer
 

Lis le message d'erreur..
Bon sang, les messages d'erreur sont pas là pour faire joli..

 

Edit: Merci Masklinn

Message cité 1 fois
Message édité par esox_ch le 25-09-2009 à 20:31:19

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1926812
masklinn
í dag viðrar vel til loftárása
Posté le 25-09-2009 à 20:19:50  profilanswer
 

esox_ch a écrit :

Lit le message d'erreur..
Bon sang, les messages d'erreur sont pas là pour faire joli..


lis [:aloy]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1926863
cbeyls
Hail to the King, Baby
Posté le 25-09-2009 à 23:30:22  profilanswer
 

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 :
  1. public class MelangePhrase {
  2.  
  3.    private static final Pattern PATTERN_MOT = Pattern.compile("\\w+" );
  4.  
  5.    public static void main (String[] args) {
  6.        System.out.print("Saisissez une phrase: " );
  7.        BufferedReader reader = new BufferedReader(System.in);
  8.        String phrase = reader.readLine();
  9.        if (phrase == null) {
  10.            // L'utilisateur a demandé l'interruption du programme
  11.            return;
  12.        }
  13.        // Découpe la phrase en mots
  14.        List<String> mots = Arrays.asList(PATTERN_MOT.split(phrase));
  15.        // Mélange les mots
  16.        Collections.shuffle(mots);
  17.        // Imprime chaque mot et attend un appui sur la touche Entrée
  18.        for (String mot : mots) {
  19.            System.out.print(mot);
  20.            reader.readLine();
  21.        }
  22.        System.out.println("Fin du programme." );
  23.    }
  24. }


Message édité par cbeyls le 26-09-2009 à 15:32:37
n°1926897
domxaline
Posté le 26-09-2009 à 10:15:12  profilanswer
 

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

n°1926899
esox_ch
Posté le 26-09-2009 à 10:23:10  profilanswer
 

[:prozac]


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1926907
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-09-2009 à 11:15:27  profilanswer
 

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 :
  1. int[]tab=new int[5];
  2.  
  3. for(int i=0;i<tab.length;i++)


tu crois vraiment qu'il est utile de déclarer un tableau pour l'utiliser comme compteur ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°1926925
domxaline
Posté le 26-09-2009 à 12:52:05  profilanswer
 

"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


Message édité par domxaline le 26-09-2009 à 13:03:27
n°1926942
cbeyls
Hail to the King, Baby
Posté le 26-09-2009 à 15:25:17  profilanswer
 

Je t'ai filé la solution, pourquoi tu ne t'en inspires pas?

n°1926958
domxaline
Posté le 26-09-2009 à 17:57:32  profilanswer
 

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

n°1926984
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 26-09-2009 à 20:41:18  profilanswer
 

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


Message édité par Harkonnen le 26-09-2009 à 20:52:08

---------------
J'ai un string dans l'array (Paris Hilton)
n°1927299
sircam
I Like Trains
Posté le 28-09-2009 à 14:06:17  profilanswer
 

[:cupra]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1927305
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 28-09-2009 à 14:11:24  profilanswer
 

*PAN*


---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  tirage un mot aleatoire

 

Sujets relatifs
Tirage aléatoire et incrémentation d'un nombrdans un tableau!!Tirage aléatoire de 7 nombres compris entre 1 et 49
Tirage d'une variable aléatoire comprise ...[javascript] Tirage aléatoire
tirage aléatoire sans remisetirage aléatoire sans remise
Tirage de nombre aléatoire.[C++] [newbiz] Fonction de tirage aléatoire ?
[Delphi] tirage aléatoire suivant une loi normale ?Function de tirage aleatoire [ RÉSOLU ! ]
Plus de sujets relatifs à : tirage un mot aleatoire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR