我的Windows中有下面的文件。按名称顺序按以下方式进行排序。
test_1a.play
test_1AA.play
test_1aaa.play
test_1AB.play
test_1AC.play
test-_1AAAA.play如果我用java读取这些文件,并执行Collections.sort(listofFiles)或python,并执行listofFiles.sort(),则得到以下顺序
test-_1AAAA.play
test_1AA.play
test_1AB.play
test_1AC.play
test_1a.play
test_1aaa.play在GUI中,我需要按照窗口排序的顺序显示文件。具有上述名称的文件夹按默认排序机制排序。只有文件是无序的。因此,我正在寻找一个用于java和python的比较方法,该方法用于windows。可以帮助我用比较器来解决这个
发布于 2012-06-05 04:25:38
试一试:
Collections.sort(files,new Comparator<File>()
{
Collator myCollator = Collator.getInstance();
@Override
public int compare(File o1, File o2)
{
return myCollator.compare(o1.getName(),o2.getName());
}
});区别在于Windows不区分大小写。如果您查看校勘员的文档,它会说:
排序规则类执行对地区敏感的字符串比较。
你只需要用它做一个比较器。如果您的列表不是文件列表,而是字符串列表,则更容易一些,因为比较器已经存在:订单。
https://stackoverflow.com/questions/10891434
复制相似问题