Détection d'un caractère afin de relever un mot [Résolu]

Signaler
Messages postés
21
Date d'inscription
mercredi 27 février 2019
Statut
Membre
Dernière intervention
28 août 2019
-
Messages postés
21
Date d'inscription
mercredi 27 février 2019
Statut
Membre
Dernière intervention
28 août 2019
-
Bonjour,

Le titre étant un peu confus je vais vous expliquer mon problème.
Premièrement voici le code en question :
package random;
import org.apache.commons.lang3.StringUtils;
import java.util.Scanner;
public class randomword {
 
 public static void main(String[] args) {
 Scanner scan = new Scanner(System.in);
  System.out.print("Entrez une phrase : ");
  String str = scan.nextLine();
  System.out.println("Phrase : \n" + str);
  str = StringUtils.lowerCase(str);
  int countThe = StringUtils.countMatches(str, " ");
  countThe++;
  int y = str.indexOf(" ",1);
  int x = str.indexOf(" ", 1);
  System.out.println(""+str.substring(y,x));  
 


Mon problème étant que j'aimerais pouvoir compter le nombre d’espaces dans la chaine de caractères et ainsi renvoyer un chiffre aléatoire parmi les espaces pour enfin relever un mot depuis le premier espace aléatoire (ouverture de borne) et un deuxième espace aléatoire (fermeture de borne).

Si le texte est un peu incompréhensible, je me ferais une joie de mieux vous expliquer.

Cdt ! ,

Shinobi55

1 réponse

Messages postés
15931
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
7 juillet 2020
2 629
Bonjour,

Tu peux faire beaucoup plus simple en découpant ton String avec la méthode split, qui te renverra un tableau avec chacun des mots de la phrase, il reste plus qu' à tirer une case au hasard...

String s = "abc def hijkl mnopq rstuv wxyz";
String[] t = s.split(" ");
int n = (int) (t.length * Math.random());
String r = t[n];
System.out.println(r); // "abc" ou "def" ou "hijkl" ou "mnopq" ou "rstuv" ou "wxyz"
Messages postés
21
Date d'inscription
mercredi 27 février 2019
Statut
Membre
Dernière intervention
28 août 2019

Bonjour KX et merci infiniment je ne connaissais pas cette méthode "split" et effectivement elle est drôlement plus pratique à utiliser !! :)