package com.yue;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class CNblogs {
public static final String FILEPATH = "D:/photo";
public static void main(String[] args) {
File[] files = new File(FILEPATH).listFiles();
List<File> fileList = new ArrayList<File>();
for (File f : files) {
fileList.add(f);
}
System.out.println(fileList);
System.out.println("-------------------------");
// /// 对fileList集合进行排序:
Collections.sort(fileList, new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
String o1Str = o1.getName();
String o2Str = o2.getName();
String o1StrCompare = o1Str.substring(0, o1Str.indexOf("."));
String o2StrCompare = o2Str.substring(0, o2Str.indexOf("."));
if (isNumeric(o1StrCompare) && isNumeric(o2StrCompare)) {
if (Integer.parseInt(o1StrCompare) > Integer
.parseInt(o2StrCompare)) {
return 1;
} else {
return -1;
}
}
else {
return o1.getName().compareTo(o2.getName());
}
}
});
System.out.println(fileList);
}
public static boolean isNumeric(String str) {
for (int i = str.length(); --i >= 0;) {
if (!Character.isDigit(str.charAt(i))) {
return false;
}
}
return true;
}
}
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class CNblogs {
public static final String FILEPATH = "D:/photo";
public static void main(String[] args) {
File[] files = new File(FILEPATH).listFiles();
List<File> fileList = new ArrayList<File>();
for (File f : files) {
fileList.add(f);
}
System.out.println(fileList);
System.out.println("-------------------------");
// /// 对fileList集合进行排序:
Collections.sort(fileList, new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
String o1Str = o1.getName();
String o2Str = o2.getName();
String o1StrCompare = o1Str.substring(0, o1Str.indexOf("."));
String o2StrCompare = o2Str.substring(0, o2Str.indexOf("."));
if (isNumeric(o1StrCompare) && isNumeric(o2StrCompare)) {
if (Integer.parseInt(o1StrCompare) > Integer
.parseInt(o2StrCompare)) {
return 1;
} else {
return -1;
}
}
else {
return o1.getName().compareTo(o2.getName());
}
}
});
System.out.println(fileList);
}
public static boolean isNumeric(String str) {
for (int i = str.length(); --i >= 0;) {
if (!Character.isDigit(str.charAt(i))) {
return false;
}
}
return true;
}
}