Salut,
Le code que tu montres lit chaque ligne du fichier, et récupère chacune d'entre-elles dans la variable ligne. Comme tu ne dois trier que la première ligne, il faudrait déjà rajouter un compteur de ligne (un int que tu incrémentes dans la boucle), ce qui te permet de ne faire le tri que pour la première ligne (dans un if). Ensuite, il te faut séparer les chiffres pour pouvoir les trier. Après les avoir trier, reconsituer la chaine au besoin (tout dépend ce que tu veux en faire).
En Java 8, on pourrait faire quelque chose comme ça pour obtenir dans ligne, les chiffres triés (dans l'ordre decroissant) :
ligne = ligne.chars().mapToObj(c-> String.valueOf((char)c)).sorted(Comparator.reverseOrder()).collect(Collectors.joining());
Mais il est probablement plus simple de faire :
1 2 3
| String[] array = ligne.split(""); // séparation des chiffres
Arrays.sort(array, Comparator.reverseOrder() ); // tri
ligne = String.join("", array); // réassemblage |
Si ça doit être fait en Java 7, tu peux toujours séparer les chiffres de la même façon. Tu ne pourras pas trier tout à fait de la même façon : il faut récupérer le comparateur de tri reverseOrder par la classe Collections au lieu de Comparator.
Quand au réassemblage, il faudra faire un boucle sur le tableau, et utiliser un StringBuilder.
Partager