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

Messages postés
29
Date d'inscription
samedi 11 décembre 2010
Dernière intervention
23 octobre 2016
- - Dernière réponse : ramadela
Messages postés
29
Date d'inscription
samedi 11 décembre 2010
Dernière intervention
23 octobre 2016
- 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
Messages postés
29
Date d'inscription
samedi 11 décembre 2010
Dernière intervention
23 octobre 2016
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 105 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ramadela
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
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
Messages postés
29
Date d'inscription
samedi 11 décembre 2010
Dernière intervention
23 octobre 2016
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
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
Messages postés
6450
Date d'inscription
mardi 8 mars 2005
Dernière intervention
17 mai 2018
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.