Détection d'un caractère afin de relever un mot

Résolu
Shinobi55 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -  
Shinobi55 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
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"
1
Shinobi55 Messages postés 21 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour KX et merci infiniment je ne connaissais pas cette méthode "split" et effectivement elle est drôlement plus pratique à utiliser !! :)
0