Java:tirage un mot aleatoire d'une phrase
marenila
-
domxaline -
domxaline -
Bonjour,
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 ecris ainsi:
mais j'ai erreur lors compilation:
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
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 ecris ainsi:
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:
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
A voir également:
- Java:tirage un mot aleatoire d'une phrase
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Eclipse java - Télécharger - Langages
6 réponses
Salut,
Cordialement,
Dan
import java.util.Random;
import java.util.Scanner;
//import com.sun.org.apache.xalan.internal.xsltc.compiler.Pattern;
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("Saisissez une phrase:");
phrase=sc.nextLine();
//String[] mots = Pattern.compile("\\w+" ).split(phrase);
String[] mots = Pattern.compile("\\W+" ).split(phrase);
for (int i = 0; i < mots.length; i++)
System.out.println ("mot " + (i+1) + ": " + mots[i]);
// On crée un tableau des mots aléatoires en controlant que le mot obtenu n'y est pas et ce,
// tant qu'ils ne sont pas tous ajoutés
String[] lesMotsAleatoires = new String[mots.length];
boolean encore = true;
int i1 = 0;
int i2 = 0;
int iSv = 0;
int ctrMotAleatoire = 0;
while (encore)
{
//encore = false;
for (i1 = iSv; i1 < mots.length; i1++)
{
Random r = new Random();
String motAleatoire = mots[r.nextInt(mots.length)];
System.out.println("\nLe mot aleatoire obtenu: " + motAleatoire);
//On verifie si le mot aléatoire est déja dans le tableau
for (i2 = 0; i2 < mots.length; i2++)
{
if (motAleatoire == lesMotsAleatoires[i2]) // déja créé
{
iSv = i1;
break; // on passe au mot aléatoire suivant
}
else
{
//System.out.println("i2 = " + i2);
if ((i2) == mots.length -1)
{
ctrMotAleatoire++;
System.out.println("\n>>>>>> Le mot aleatoire créé: " + motAleatoire);
lesMotsAleatoires[ctrMotAleatoire -1] = motAleatoire; //on crée
if (ctrMotAleatoire == mots.length) // c'est le drenier
{
encore = false;
break;
}
}
}
}
}
}
// Resultat:
System.out.println("\nLES MOTS ALEATOIRES:\n");
for (int iR = 0; iR < mots.length; iR++)
{
System.out.println((iR + 1) + ": " + lesMotsAleatoires[iR]);
}
}
}
Cordialement,
Dan
Salut,
Cordialement,
Dan
import java.util.Random;
import java.util.Scanner;
//import com.sun.org.apache.xalan.internal.xsltc.compiler.Pattern;
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);
String[] mots = Pattern.compile("\\W+" ).split(phrase); //<<<<<<<<<<<<<<<<<
Random r = new Random();
String motAleatoire = mots[r.nextInt(mots.length)];
System.out.println(">>>>>>>>>>> " + motAleatoire);
}
}
Cordialement,
Dan
bonjour
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)
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)
j'ai corrigé cette ligne
resultat est suivant:
Saissisez une phrase:
je suis en vacances
je
je
je
je
je
mais je veux diffèrent mot chaque fois quand je clique
sur le touche entrée
int[]tab=new int[5];
resultat est suivant:
Saissisez une phrase:
je suis en vacances
je
je
je
je
je
mais je veux diffèrent mot chaque fois quand je clique
sur le touche entrée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Marenila,
J'ai un peu amélioré le programme, je ne sais pas s c'est exactement ce que tu veux, mais voici le résultat de l'exécution :
Saissisez une phrase
bonjour le monde des petits elephants gentils
idxc : 2 monde
idxc : 4 petits
idxc : 6 gentils
idxc : 1 le
idxc : 5 elephants
idxc : 3 des
idxc : 0 bonjour
Et voici le code
Bon courage
J'ai un peu amélioré le programme, je ne sais pas s c'est exactement ce que tu veux, mais voici le résultat de l'exécution :
Saissisez une phrase
bonjour le monde des petits elephants gentils
idxc : 2 monde
idxc : 4 petits
idxc : 6 gentils
idxc : 1 le
idxc : 5 elephants
idxc : 3 des
idxc : 0 bonjour
Et voici le code
package mypackage;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
import java.util.regex.*;
/**
* Un classe avec métode main qui demande la saisie d'une phase,
* la découpe en mots, puis affiche chacun des mots dans un ordre
* aléatoire
*/
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 = null;
// pour être sûr que chaque mot de la phrase sera ecrit une fois
// on enregistre les index déjà pris dans un Arraylist
ArrayList<Integer> dejaPris = new ArrayList<Integer>();
Integer nouvelIdx = null;
// On va boucler jusqu'à avoir écrits tous les mots de la phrase
while(dejaPris.size() < mots.length)
{
// L'index du mot
nouvelIdx = r.nextInt(mots.length);
if (!dejaPris.contains(nouvelIdx))
{
// On ajoute l'index dans la liste des déjà pris
dejaPris.add(nouvelIdx);
motAleatoire = mots[nouvelIdx];
System.out.println("idxc : " + nouvelIdx + " " + motAleatoire);
}
}
}
}
Bon courage