我用f.listFiles()在目录中创建了一个文件列表.
不幸的是,它们的名称如下:
001.pdf
098.pdf
100.pdf
1000.pdf
现在,目录中的文件数组在100.pdf之前设置了1000.pdf.
如何对此进行排序以使文件以正确的顺序返回?
感谢帮助!
您可以在空格前添加相同长度的名称:
File[] files = f.listFiles();
if(files != null) {
Arrays.sort(files, new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
return String.format("%100s", o1.getName()).compareTo(
String.format("%100s", o2.getName()));
}
});
System.out.println(Arrays.toString(files));
}
Run Code Online (Sandbox Code Playgroud)
如果您使用的是Java-8,则更短:
File[] files = f.listFiles();
if(files != null) {
Arrays.sort(files, Comparator.comparing(file -> String.format("%100s", file.getName())));
System.out.println(Arrays.toString(files));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |