3 回答

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以將Collections.sort()與自定義比較器一起使用,該比較器比較每個(gè)文件名的整數(shù)前綴,如下面的 ArrayList files:
Collections.sort(files, new Comparator<String>() {
public int compare(String s1, String s2) {
int s1Num = Integer.valueOf(s1.split("[.jpg]")[0]);
int s2Num = Integer.valueOf(s2.split("[.jpg]")[0]);
if (s1Num == s2Num) { return 0; }
else if (s1Num < s2Num) { return -1; }
else { return 1; }
}
});
for (String file: files) {
System.out.println(file);
}
輸出:
1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
6.jpg
7.jpg
8.jpg
9.jpg
10.jpg
11.jpg
12.jpg
13.jpg
14.jpg
15.jpg
16.jpg
17.jpg
18.jpg
19.jpg
20.jpg
21.jpg
22.jpg

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
當(dāng)然是這個(gè)順序。這些文件不是按算術(shù)排序而是按字典排序。您必須重命名所有單個(gè)數(shù)字文件以包含前導(dǎo)零以實(shí)現(xiàn)您期望的順序或編寫(xiě)自定義排序方法并將其應(yīng)用于包含您的文件名的列表。
添加回答
舉報(bào)