为了账号安全,请及时绑定邮箱和手机立即绑定

请问一下java.io.File 中File.list()的顺序问题,该怎么解决?

请问一下java.io.File 中File.list()的顺序问题,该怎么解决?

烙印99 2022-01-14 15:11:37
如题。File folder =new File(folderPath);File file[]=folder.list();这样列出的文件的排序有点问题。如folder中的有以下12个文件时,file[]中顺序就是这样:aaa0.txt,aaa1.txt,aaa10.txt,aaa11.txt,aaa2.txt,aaa3.txt,aaa4.txt,aaa5.txt,aaa6.txt,aaa7.txt,aaa8.txt,aaa9.txt面对这类问题,如何让aaa10.txt,aaa11.txt正常排序,即拍到aaa9.txt之后而不是aaa1.txt之后;aaa20.txt拍到aaa19.txt之后而不是aaa2.txt之后。请针对这类问题回答,谢谢。修正以下,第二句是File file[]=folder.listFile();
查看完整描述

2 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

自己定义一个Comparator,然后用Arrays.sort(file,new FileComparator())。

FileComparator可以按下面的来定义:


 class FileComparator implements Comparator<File> {      @Override      public int compare(File f1, File f2) {         String s1=f1.getName().substring(3);         String s2=f2.getName().substring(3);         int i1=Integer.parseInt(s1);         int i2=Integer.parseInt(s2);         return i1-i2;      }   }


查看完整回答
反对 回复 2022-01-16
?
绝地无双

TA贡献1946条经验 获得超4个赞

将这个类实现Comparable接口,然后用Collections.sort()排序。

查看完整回答
反对 回复 2022-01-16
  • 2 回答
  • 0 关注
  • 634 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信