发布网友 发布时间:2022-05-05 14:26
共2个回答
热心网友 时间:2022-06-27 15:10
自己定义一个Comparator,然后用Arrays.sort(file,new FileComparator())。
FileComparator可以按下面的来定义:
class FileComparator implements Comparator<File> {追问如果文件名是这样的NameNum.Postfix,也就是文件名除去数字部分Name的长度事先不知道,是传递进来的,也许是a1.txt,也许是aaa1.txt。
那么substring()里的参数怎么填?
追答int getFileNumber(String fn){
int len=fn.length-1/*变为有效索引*/-4/*去掉.txt的长度*/;
while(len>0){// 从后向前检查所有数字字符
if(fn.charAt(len)<'0' || fn.charAt(len)>'9')break;// 不是数字退出循环
len--;
}
try{
return Integer.parseInt(fn.substring(len+1,fn.length-4));
}catch(Throwable e){
return 0; // 这里可以根据需求看看是返回0,还是无穷大
}
}
热心网友 时间:2022-06-27 15:10
将这个类实现Comparable接口,然后用Collections.sort()排序。