例如:1.png,2.png,4.png,3.png,12.png,22.png,31.png
需要的结果为:1.png,2.png,3.png,4.png,12.png,22.png,31.png,
//把list集合转换成数组 String[] strings = list.toArray(arr); // System.out.println("================================="); // 对截取的图片名称进行排序 sortUtil(strings);
public static void sortUtil(String[] fileNames) { Arrays.sort(fileNames, new Comparator<String>() { @Override public int compare(String s1, String s2) { if (returnDouble(s1) < returnDouble(s2)) return -1; else if (returnDouble(s1) > returnDouble(s2)) return 1; else return 0; } public double returnDouble(String str) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < str.length(); i++) { if (Character.isDigit(str.charAt(i))) sb.append(str.charAt(i)); else if (str.charAt(i) == '.' && i < str.length() - 1 && Character.isDigit(str.charAt(i + 1))) sb.append(str.charAt(i)); else break; } if (sb.toString().isEmpty()) return 0; else return Double.parseDouble(sb.toString()); } }); }