cs_thegame
Messages postés1Date d'inscriptionlundi 15 mars 2004StatutMembreDernière intervention22 septembre 2006
-
22 sept. 2006 à 11:27
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 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 ?
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201338 22 sept. 2006 à 18:10
Salut :
Est ce que tes fichiers portent les noms : s0.txt, s1.txt, ...., s99.txt ?
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 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.