J'essaie de trouver toutes les permutations d'une chaîne et les classer par ordre alphabétique.Trier ArrayList par ordre alphabétique
C'est ce que j'ai jusqu'à présent:
public class permutations {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
System.out.print("Enter String: ");
String chars = s.next();
findPerms("", chars);
}
public static void findPerms(String mystr, String chars) {
List<String> permsList = new ArrayList<String>();
if (chars.length() <= 1)
permsList.add(mystr + chars);
//System.out.print(mystr + chars + " ");
else
for (int i = 0; i < chars.length(); i++) {
String newString = chars.substring(0, i) + chars.substring(i + 1);
findPerms(mystr + chars.charAt(i), newString);
}
Collections.sort(permsList);
for(int i=0; i<permsList.size(); i++) {
System.out.print(permsList.get(i) + " ");
}
}
}
Si j'entre une chaîne "jouets" Je reçois:
jouets TOSY tyos tyso Tsoy TSYO OTYS otsy essais OYT oyst Osty osyt ytos YouTube Symphony Orchestra Yots Yost ysto ysot stoy styo soty soot syto syot
Qu'est-ce que je fais mal. Comment puis-je les obtenir dans l'ordre alphabétique? Merci!
Cela fonctionne-t-il si vous définissez 'permsList = Collections.sort (permsList);' –
Paul, Collections.sort ne renvoie pas de valeur. –
@ Paul Tomblin: ce ne serait pas compiler. Cela ne retourne rien. Il trie simplement la collection donnée. Les collections ne sont pas immuables comme 'String'. – BalusC