【发布时间】:2018-07-29 07:34:44
【问题描述】:
我的内存里有各种文件,每个人都用一个数字和他的格式来完成他的名字,例如:
/storage/emulated/0/packets
- 文件 1.x
- 文件 2.x
- ...
- 文件 11.x
我做了一个代码来检索文件并按升序排序,但是当文件超过10个时,排序失败。
我的代码:
ArrayList<String> list;
public static boolean SetFileList(String directory){
list = new ArrayList<>();
if(DirectoryExist(directory)) { //DirectoryExist() verify if the parameter directory it's a true directory
File[] files = new File(directory).listFiles();
if (files == null) {
return false;
}
else if (files.length == 0) {
return false;
}
else {
Arrays.sort(files); //<------this method is supposed to sort
for (File file : files) {
list.add(file.getName());
}
return true;
}
}
else{
return false;
}
}
当我使用以下代码显示文件时:
for(int i = 0; i < list.size(); i++){
Log.i("File", list.get(i));
}
抛出类似:
File: File 1.x
File: File 10.x
File: File 11.x
File: File 12.x
File: File 2.x
File: File 3.x
File: ...
但我想展示:
File: File 1.x
File: File 2.x
File: File 3.x
File: ...
File: File 10.x
File: File 11.x
File: File 12.x
为什么会这样?
【问题讨论】:
-
检查你的 int 是否小于 10
-
你必须实现一个只比较数字的特殊比较器
标签: java android arrays file sorting