J'ai un simple programme Java qui lit un répertoire de fichiers et génère une liste de fichiers.
Je trie les fichiers par nom: Mon problème est qu'il trie par nom de manière différente de celui de Windows Explorer. P> Par exemple, si j'ai ces fichiers: abc1.doc, abc12.doc, abc2.doc. p> Java triera comme ceci: p> Quand j'ouvre le dossier dans l'Explorateur Windows, mon Les fichiers sont triés comme ceci: p> Comment puis-je définir Java trier mes fichiers comme dans l'Explorateur Windows?
Est-ce une astuce de Windows? P> p>
4 Réponses :
Windows Explorer utilise son propre algorithme. Afin de trier vos fichiers tels que Explorer, vous devez créer un comparateur personnalisé pour faire le truc: maintenant, utilisez-le comme suit: P> Arrays.sort(files, new WindowsExplorerStringComparator());
Je voulais ajouter que: l'argument nommé "fichiers" doit être de type chaîne []
Trier par chaîne alors par la longueur de nom. p>
Il a l'air de cette façon. P>
Cependant, vous pouvez utiliser Arrays.sort () code>
et fournissez un comparateur personnalisé code> de sorte qu'il trie comme Windows Explorer. P >
C'est un autre essai de le mettre en œuvre en Java: P>
java - trier chaînes telles que Windows Explorer P>
En bref, il se divise les deux chaînes pour comparer des pièces à chiffres et compare ces parties de manière spécifique pour atteindre ce type de tri. P>
avec cela son iMho un peu plus lisible. P>
Voir Stackoverflow.com/Questtions/442429/windows-Explorer-sort-met HOD