Inverser les mots d'une phrase et non les caractères [Résolu]

ramadela 29 Messages postés samedi 11 décembre 2010Date d'inscription 23 octobre 2016 Dernière intervention - 12 mai 2012 à 21:34 - Dernière réponse : ramadela 29 Messages postés samedi 11 décembre 2010Date d'inscription 23 octobre 2016 Dernière intervention
- 15 mai 2012 à 20:18
salut
donc voici un nouveau problème que j'ai rencontré dans java est comme suit:
inverser les mots d'une phrase , le premier sera le dernier et le contraire par exemple : Ex : « je suis étudiant en master » devient « master en étudiant suis je »
et voici mon programme mais ne fait rien :
String phrase = "je suis étudiant en master";
for (int i = phrase.length(); i<= 0 ; i--){
    if (phrase.charAt() == ' '){
        int n = phrase.indexOf(' ', i+1);
        for (int k = i; k<= n ; k++){
            System.out.print(phrase.charAt(k));
}
}
}

et merci
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
ramadela 29 Messages postés samedi 11 décembre 2010Date d'inscription 23 octobre 2016 Dernière intervention - 15 mai 2012 à 20:18
3
Merci
MERCI les amies c'est bon j'ai trouvé la solution
String x = "je suis étudiant en master";
String[] parts = x.split(" ");
StringBuilder sb = new StringBuilder();
for(int i = parts.length - 1; i >= 0; i--){
      sb.append(parts[i]);
      sb.append(" ");
      }
System.out.println(""+sb);
}   

Ramadela

Merci ramadela 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de ramadela
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 12 mai 2012 à 21:51
0
Merci
Salut,

La même chose en bien moins de lignes :

String phrase = "je suis étudiant en master";
String mots = phrase.split("\\p{Space}");
for(int i=phrase.length; i>=0; i++){
    System.out.print(mots[i]+" ");
}
Commenter la réponse de cs_Julien39
ramadela 29 Messages postés samedi 11 décembre 2010Date d'inscription 23 octobre 2016 Dernière intervention - 12 mai 2012 à 22:13
0
Merci
merci julien39 de votre réponse
après que j'ai modifier mon programme comme vous m'avez donner il m'affiche : change type of mots to String[], à la ligne correspondante à la ligne 1 de votre programme donc j'ai corrigé cette faute , mais aprés exécution
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 26
at exemple6classestring.Main.main(Main.java:29)
et la ligne 29 correspond à la ligne 4 de votre programme et ne fait rien
ramadela
Commenter la réponse de ramadela
Utilisateur anonyme - 13 mai 2012 à 11:01
0
Merci
Salut,

String phrase = "je suis étudiant en master";
         String[] mots = phrase.split(" +"); // motif 1 ou plusieurs espaces
         //for (String s : mots) System.out.println(s);
      	
         String phraseInverse = "";
         for(int i = mots.length -1; i>= 0; i--)
         phraseInverse+= mots[i] + " ";
         phraseInverse = phraseInverse.trim(); // enlève le dernier espace
      	
         System.out.println("phraseInverse = " + phraseInverse);

Cordialement,

...\ Dan /...
Commenter la réponse de Utilisateur anonyme
cs_Julien39 6450 Messages postés mardi 8 mars 2005Date d'inscription 17 mai 2018 Dernière intervention - 14 mai 2012 à 09:08
0
Merci
danimo a corrigé mon erreur, il faut commencer à phrase.length-1.

Si tu utilises la méthode de phrase.length, préfère la regex \\p{Space}+ qui prendra aussi les tabulations.
Commenter la réponse de cs_Julien39

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.