Trier des noms de fichiers

cs_thegame Messages postés 1 Date d'inscription lundi 15 mars 2004 Statut Membre Dernière intervention 22 septembre 2006 - 22 sept. 2006 à 11:27
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Modérateur Dernière intervention 23 décembre 2008 - 22 sept. 2006 à 22:35
J'essaie de trier une liste de fichiers par leur noms

Soit la classe :
public class Fichier implements Comparable {
   String nom;
   ....
   public int compareTo(Object object) {
      Fichier f = (Fichier) object;
      return nom.compareToIgnoreCase(f.nom);
   }
}

Le problème est que par exemple un fois trié, "s100.txt" a un index inférieur à "s99.txt" alors que pour des fichiers il faut afficher "s99.txt" avant "s100.txt"...
Le tri lexicographique ne fonctionne donc pas... comment m'en sortir ?

Merci

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 129
22 sept. 2006 à 13:26
C'est à toi de faire ton propre algorithme de tri !

Je pense qu'il doit en existe sur le net.
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
22 sept. 2006 à 18:10
Salut :

Est ce que tes fichiers portent les noms : s0.txt, s1.txt, ...., s99.txt ?
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Modérateur Dernière intervention 23 décembre 2008 23
22 sept. 2006 à 22:35
Dans le cas où tes fichiers s'appellent tous s[Nombre].txt, tu pourrais faire comme ceci :

public int compareTo(Object object) {
      Fichier f = (Fichier) object;
      int value1 = Integer.ParseInt(nom.substring(1,nom.length-5));
      int value2 = Integer.ParseInt(f.nom.substring(1,nom.length-5));
      return (value1.CompareTo(value2));
   }

Manu
--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
0
Rejoignez-nous