我需要对可以拥有共同根目录的文件名进行排序,然后按照不一致填充的数字进行排序;一个示例是在Windows中重命名多个文件时获得的内容。
filenamea(1).txt filenamea(2).txt ... filenamea(10).txt ... filenamea(100).txt ... filenameb.txt ... filenamec(1).txt filenamec(2).txt
依旧......
答案 0 :(得分:5)
已经有类似的问题,我知道Sort on a string that may contain a number和How to implement a natural sort algorithm in C。所以你也可以在那里寻找更多的灵感和帮助。
这两个问题的答案都表明http://www.davekoelle.com/alphanum.html,这基本上就是Pascal Cuoq所建议的。
您还可以查看Coding Horror文章,其中包含其他一些算法:Sorting for Humans : Natural Sort Order
答案 1 :(得分:1)
一种解决方案是从字典顺序的角度将数字(连续的数字序列)视为单个字母。
然后“filenamea(3).txt”,“filenamea(20).txt”和“filenamea(100).txt”都有相同的长度,最后按此顺序排序,我明白是什么你想要(?)